Example #1
0
 public ReceiptRepository()
 {
     receiptMapper            = new ReceiptMapper();
     productMapper            = new ProductMapper();
     categoryMapper           = new CategoryMapper();
     customizedProductService = new CustomizedProductService();
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
        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));
        }