Implement AuctionDtos; improvements, fixes, etc...
This commit is contained in:
parent
8ad64ac523
commit
2a76051a4e
|
|
@ -1,6 +1,7 @@
|
||||||
using Mango.Nop.Core.Repositories;
|
using Mango.Nop.Core.Repositories;
|
||||||
using Nop.Core;
|
using Nop.Core;
|
||||||
using Nop.Data;
|
using Nop.Data;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer.Interfaces;
|
||||||
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|
@ -11,8 +12,8 @@ public class AuctionDbContext : MgDbContextBase, IAuctionDbSet<AuctionDbTable>,
|
||||||
public AuctionDbTable Auctions { get; set; }
|
public AuctionDbTable Auctions { get; set; }
|
||||||
public AuctionBidDbTable AuctionBids { get; set; }
|
public AuctionBidDbTable AuctionBids { get; set; }
|
||||||
|
|
||||||
public EntityRepository<Auction> Auctions2 { get; set; }
|
//public EntityRepository<Auction> Auctions2 { get; set; }
|
||||||
public IRepository<AuctionBid> AuctionBids2 { get; set; }
|
//public IRepository<AuctionBid> AuctionBids2 { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public AuctionDbContext(INopDataProvider dataProvider, AuctionDbTable auctionDbTable, AuctionBidDbTable auctionBidDbTable) : base(dataProvider)
|
public AuctionDbContext(INopDataProvider dataProvider, AuctionDbTable auctionDbTable, AuctionBidDbTable auctionBidDbTable) : base(dataProvider)
|
||||||
|
|
@ -21,7 +22,7 @@ public class AuctionDbContext : MgDbContextBase, IAuctionDbSet<AuctionDbTable>,
|
||||||
AuctionBids = auctionBidDbTable;
|
AuctionBids = auctionBidDbTable;
|
||||||
|
|
||||||
//Auctions.Table
|
//Auctions.Table
|
||||||
var auctions = DataProvider.GetTable<Auction>().Where(x => x.Closed);
|
//var auctions = DataProvider.GetTable<Auction>().Where(x => x.Closed);
|
||||||
}
|
}
|
||||||
|
|
||||||
//public AuctionDbContext(IRepository<Auction> _auctionRepository, IRepository<AuctionBid> _auctionBidRepository)
|
//public AuctionDbContext(IRepository<Auction> _auctionRepository, IRepository<AuctionBid> _auctionBidRepository)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
using Nop.Data;
|
using Nop.Data;
|
||||||
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer;
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer.Interfaces;
|
||||||
|
|
||||||
public interface IAuctionBidDbSet<TDbTable> : IMgDbTableBase where TDbTable : IRepository<AuctionBid>
|
public interface IAuctionBidDbSet<TDbTable> : IMgDbTableBase where TDbTable : IRepository<AuctionBid>
|
||||||
{
|
{
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
using Nop.Data;
|
using Nop.Data;
|
||||||
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer;
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.DataLayer.Interfaces;
|
||||||
|
|
||||||
public interface IAuctionDbSet<TDbTable> : IMgDbTableBase where TDbTable : IRepository<Auction>
|
public interface IAuctionDbSet<TDbTable> : IMgDbTableBase where TDbTable : IRepository<Auction>
|
||||||
{
|
{
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos;
|
||||||
|
|
||||||
|
public class AuctionBidDto
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos;
|
||||||
|
|
||||||
|
public class AuctionDto
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuctionBidDto : IAuctionBidDtoBase
|
||||||
|
{
|
||||||
|
//[NotMapped]
|
||||||
|
//[NotColumn]
|
||||||
|
public List<AuctionBid> AuctionBids { get; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
using Mango.Nop.Core.Interfaces;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuctionBidDtoBase : IMgModelDtoBase
|
||||||
|
{
|
||||||
|
public int ProductAuctionMappingId { get; set; }
|
||||||
|
|
||||||
|
public int CustomerId { get; set; }
|
||||||
|
|
||||||
|
public int ProductId { get; set; }
|
||||||
|
|
||||||
|
public bool IsWinner { get; set; }
|
||||||
|
public int BidPrice { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
using AyCode.Interfaces;
|
||||||
|
using AyCode.Interfaces.Server.Logins;
|
||||||
|
using AyCode.Interfaces.Users.Dtos;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuctionDto : IAuctionDtoBase
|
||||||
|
{
|
||||||
|
//[NotMapped]
|
||||||
|
//[NotColumn]
|
||||||
|
public List<ProductToAuctionMapping> ProductToAuctionMappings { get; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using AyCode.Interfaces;
|
||||||
|
using Mango.Nop.Core.Interfaces;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuctionDtoBase : IMgModelDtoBase
|
||||||
|
{
|
||||||
|
public string AuctionName { get; set; }
|
||||||
|
|
||||||
|
public AuctionType AuctionType { get; set; }
|
||||||
|
|
||||||
|
public DateTime StartDateUtc { get; set; }
|
||||||
|
public DateTime? EndDateUtc { get; set; }
|
||||||
|
|
||||||
|
public bool Closed { get; set; }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos;
|
||||||
|
|
||||||
|
public class ProductToAuctionDto
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,15 +1,14 @@
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using AyCode.Interfaces.Entities;
|
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
|
||||||
using LinqToDB.Mapping;
|
using LinqToDB.Mapping;
|
||||||
using Mango.Nop.Core.Entities;
|
using Mango.Nop.Core.Entities;
|
||||||
using Mango.Nop.Core.Interfaces;
|
using Mango.Nop.Core.Interfaces;
|
||||||
using Nop.Core;
|
using Nop.Core;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities.Interfaces;
|
||||||
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
|
||||||
|
|
||||||
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
public partial class Auction: MgEntityBase, ITimeStampInfo//, ISoftRemoveEntityInt
|
public partial class Auction: MgEntityBase, IAuction
|
||||||
{
|
{
|
||||||
public string AuctionName { get; set; }
|
public string AuctionName { get; set; }
|
||||||
|
|
||||||
|
|
@ -20,10 +19,6 @@ public partial class Auction: MgEntityBase, ITimeStampInfo//, ISoftRemoveEntityI
|
||||||
|
|
||||||
public bool Closed { get; set; }
|
public bool Closed { get; set; }
|
||||||
|
|
||||||
[NotMapped]
|
|
||||||
[NotColumn]
|
|
||||||
public List<ProductToAuctionMapping> ProductToAuctionMappings { get; } = [];
|
|
||||||
|
|
||||||
[SkipValuesOnUpdate]
|
[SkipValuesOnUpdate]
|
||||||
public DateTime Created { get; set; }
|
public DateTime Created { get; set; }
|
||||||
public DateTime Modified { get; set; }
|
public DateTime Modified { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using LinqToDB.Mapping;
|
||||||
using Mango.Nop.Core.Entities;
|
using Mango.Nop.Core.Entities;
|
||||||
using Nop.Core;
|
using Nop.Core;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities.Interfaces;
|
||||||
|
|
||||||
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities
|
||||||
{
|
{
|
||||||
public partial class AuctionBid : MgEntityBase, ITimeStampInfo//, ISoftRemoveEntityInt
|
public partial class AuctionBid : MgEntityBase, IAuctionBid
|
||||||
{
|
{
|
||||||
public int ProductAuctionMappingId { get; set; }
|
public int ProductAuctionMappingId { get; set; }
|
||||||
|
|
||||||
|
|
@ -16,8 +17,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities
|
||||||
public bool IsWinner { get; set; }
|
public bool IsWinner { get; set; }
|
||||||
public int BidPrice { get; set; }
|
public int BidPrice { get; set; }
|
||||||
|
|
||||||
public DateTime CreateDate { get; set; }
|
[SkipValuesOnUpdate]
|
||||||
|
|
||||||
public DateTime Created { get; set; }
|
public DateTime Created { get; set; }
|
||||||
public DateTime Modified { get; set; }
|
public DateTime Modified { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
|
using LinqToDB.Mapping;
|
||||||
using Mango.Nop.Core.Entities;
|
using Mango.Nop.Core.Entities;
|
||||||
using Nop.Core;
|
using Nop.Core;
|
||||||
|
|
||||||
|
|
@ -7,6 +8,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities;
|
||||||
|
|
||||||
public partial class AuctionItem : MgEntityBase, ITimeStampInfo//, ISoftRemoveEntityInt
|
public partial class AuctionItem : MgEntityBase, ITimeStampInfo//, ISoftRemoveEntityInt
|
||||||
{
|
{
|
||||||
|
[SkipValuesOnUpdate]
|
||||||
public DateTime Created { get; set; }
|
public DateTime Created { get; set; }
|
||||||
public DateTime Modified { get; set; }
|
public DateTime Modified { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuction : IAuctionDtoBase, ITimeStampInfo //, ISoftRemoveEntityInt
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos.Interfaces;
|
||||||
|
|
||||||
|
namespace Nop.Plugin.Misc.AuctionPlugin.Domains.Entities.Interfaces;
|
||||||
|
|
||||||
|
public interface IAuctionBid : IAuctionBidDtoBase, ITimeStampInfo//, ISoftRemoveEntityInt
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
|
using LinqToDB.Mapping;
|
||||||
using Mango.Nop.Core.Entities;
|
using Mango.Nop.Core.Entities;
|
||||||
using Nop.Core;
|
using Nop.Core;
|
||||||
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
|
using Nop.Plugin.Misc.AuctionPlugin.Domains.Enums;
|
||||||
|
|
@ -17,6 +18,8 @@ public partial class ProductToAuctionMapping : MgEntityBase, ITimeStampInfo//, I
|
||||||
public int BidPrice { get; set; }
|
public int BidPrice { get; set; }
|
||||||
|
|
||||||
public int BidAmount { get; set; } = 1;
|
public int BidAmount { get; set; } = 1;
|
||||||
|
|
||||||
|
[SkipValuesOnUpdate]
|
||||||
public DateTime Created { get; set; }
|
public DateTime Created { get; set; }
|
||||||
public DateTime Modified { get; set; }
|
public DateTime Modified { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -23,9 +23,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Services
|
||||||
|
|
||||||
public AnnouncementService(IRepository<Announcement> announcementRepository)
|
public AnnouncementService(IRepository<Announcement> announcementRepository)
|
||||||
{
|
{
|
||||||
|
|
||||||
_announcementRepository = announcementRepository;
|
_announcementRepository = announcementRepository;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -34,86 +32,56 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Services
|
||||||
|
|
||||||
public async Task DeleteAsync(Announcement announcement)
|
public async Task DeleteAsync(Announcement announcement)
|
||||||
{
|
{
|
||||||
|
|
||||||
await _announcementRepository.DeleteAsync(announcement);
|
await _announcementRepository.DeleteAsync(announcement);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<bool> UpdateAsync(Announcement announcement)
|
public async Task<bool> UpdateAsync(Announcement announcement)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
if (announcement == null) throw new ArgumentNullException("customer");
|
||||||
if (announcement == null)
|
|
||||||
|
|
||||||
throw new ArgumentNullException("customer");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
await _announcementRepository.UpdateAsync(announcement);
|
await _announcementRepository.UpdateAsync(announcement);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task InsertAsync(Announcement announcement)
|
public async Task InsertAsync(Announcement announcement)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
await _announcementRepository.InsertAsync(announcement);
|
await _announcementRepository.InsertAsync(announcement);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task<IPagedList<Announcement>> GetAnnouncementsAsync(int pageIndex = 0, int pageSize = int.MaxValue)
|
public async Task<IPagedList<Announcement>> GetAnnouncementsAsync(int pageIndex = 0, int pageSize = int.MaxValue)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
var announcements = _announcementRepository.Table.OrderBy(announcement => announcement.IsActive).ToList();
|
||||||
|
|
||||||
var query = from c in _announcementRepository.Table
|
return new PagedList<Announcement>(announcements, pageIndex, pageSize);
|
||||||
|
|
||||||
select c;
|
|
||||||
|
|
||||||
var query2 = query.OrderBy(b => b.IsActive).ToList();
|
|
||||||
|
|
||||||
var liveAnnouncementDomain = new PagedList<Announcement>(query2, pageIndex, pageSize);
|
|
||||||
|
|
||||||
return liveAnnouncementDomain;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Announcement> GetAnnouncementDesignFirstAsync()
|
public async Task<Announcement> GetAnnouncementDesignFirstAsync()
|
||||||
|
|
||||||
{
|
{
|
||||||
var result = await _announcementRepository.GetAllAsync(query =>
|
return await _announcementRepository.Table.FirstOrDefaultAsync(announcement => announcement.IsActive == true);
|
||||||
{
|
|
||||||
query = query.Where(record => record.IsActive == true);
|
|
||||||
return query;
|
|
||||||
});
|
|
||||||
|
|
||||||
//var query = from c in _announcementRepository.Table
|
//var result = await _announcementRepository.GetAllAsync(announcements => announcements.Where(record => record.IsActive == true));
|
||||||
|
|
||||||
// where c.IsActive == true
|
////var query = from c in _announcementRepository.Table
|
||||||
|
|
||||||
// orderby c.CreateDate descending
|
//// where c.IsActive == true
|
||||||
|
|
||||||
// select c;
|
//// orderby c.CreateDate descending
|
||||||
|
|
||||||
var LatestAnnouncement = result.ToList().FirstOrDefault();
|
//// select c;
|
||||||
|
|
||||||
return LatestAnnouncement;
|
//var LatestAnnouncement = result.ToList().FirstOrDefault();
|
||||||
|
|
||||||
|
//return LatestAnnouncement;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Announcement> GetAnnouncementByIdAsync(int Id)
|
public async Task<Announcement> GetAnnouncementByIdAsync(int id)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
return await _announcementRepository.GetByIdAsync(id);
|
||||||
return await _announcementRepository.GetByIdAsync(Id);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,9 @@
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Routing;
|
|
||||||
using Nop.Core.Domain.Catalog;
|
using Nop.Core.Domain.Catalog;
|
||||||
using Nop.Core.Domain.Customers;
|
|
||||||
using Nop.Core.Domain.Messages;
|
|
||||||
using Nop.Core.Domain.Orders;
|
|
||||||
using Nop.Core.Events;
|
using Nop.Core.Events;
|
||||||
using Nop.Services.Events;
|
using Nop.Services.Events;
|
||||||
using Nop.Services.Messages;
|
|
||||||
using Nop.Web.Framework;
|
|
||||||
using Nop.Web.Framework.Events;
|
|
||||||
using Nop.Web.Framework.Models;
|
|
||||||
using Nop.Web.Models.Catalog;
|
|
||||||
|
|
||||||
namespace Nop.Plugin.Misc.AuctionPlugin;
|
namespace Nop.Plugin.Misc.AuctionPlugin.Services;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents plugin event consumer
|
/// Represents plugin event consumer
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Services
|
||||||
|
|
||||||
{
|
{
|
||||||
public interface IAnnouncementService
|
public interface IAnnouncementService
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
public Task DeleteAsync(Announcement announcement);
|
public Task DeleteAsync(Announcement announcement);
|
||||||
|
|
||||||
public Task InsertAsync(Announcement announcement);
|
public Task InsertAsync(Announcement announcement);
|
||||||
|
|
@ -24,8 +22,6 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Services
|
||||||
|
|
||||||
public Task<Announcement> GetAnnouncementDesignFirstAsync();
|
public Task<Announcement> GetAnnouncementDesignFirstAsync();
|
||||||
|
|
||||||
public Task<Announcement> GetAnnouncementByIdAsync(int Id);
|
public Task<Announcement> GetAnnouncementByIdAsync(int id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue