public ReceiptRepository() { receiptMapper = new ReceiptMapper(); productMapper = new ProductMapper(); categoryMapper = new CategoryMapper(); customizedProductService = new CustomizedProductService(); }
public async Task <ActionResult <ReceiptAllDTO> > Get(int receiptId) { var receiptDto = await _bll.ReceiptsService.GetReceiptAndRelatedData(receiptId, User.GetUserId()); if (receiptDto == null) { return(Unauthorized()); } var result = ReceiptMapper.FromBLLToAll(receiptDto); return(result); }
public async Task <int?> AddAsync(DALReceiptDTO receiptDTO) { var receipt = ReceiptMapper.FromDAL(receiptDTO); var addedEntity = (await RepoDbSet.AddAsync(receipt)).Entity; if (addedEntity == null) { return(null); } EntityCreationCache.Add(addedEntity.Id, addedEntity); return(addedEntity.Id); }
public async Task <DALReceiptDTO> FindReceiptAsync(int receiptId) { var receipt = await RepoDbSet.FindAsync(receiptId); if (receipt == null) { return(null); } await RepoDbContext.Entry(receipt).Collection(r => r.ReceiptParticipants).LoadAsync(); await RepoDbContext.Entry(receipt).Reference(r => r.ReceiptManager).LoadAsync(); return(ReceiptMapper.FromDomain2(receipt)); }
public async Task <int> NewReceipt(int userId) { var receiptDTO = ReceiptMapper.FromBLL(userId); var receiptId = await Uow.Receipts.AddAsync(receiptDTO); if (receiptId == null) { return(-1); } await Uow.SaveChangesAsync(); var result = Uow.Receipts.GetEntityIdAfterSaveChanges(receiptId.Value); if (result == null) { return(-1); } return(result.Value); }
public async Task <BLLReceiptDTO> GetReceiptAndRelatedData(int receiptId, int currentUserId) { var receipt = await Uow.Receipts.FindReceiptAsync(receiptId); if (receipt == null) { return(null); } //Check if current user is manager or participant if (receipt.ReceiptManagerId != currentUserId && !receipt.ReceiptParticipants .Select(dto => dto.ParticipantAppUserId).ToList().Contains(currentUserId)) { return(null); } var time = receipt.IsFinalized == false ? DateTime.Now : receipt.CreatedTime; var rows = await Uow.ReceiptRows.AllReceiptsRows(receipt.ReceiptId, time); return(ReceiptMapper.FromDAL2(receipt, rows)); }