예제 #1
0
        public async Task <CreateOrderResponse> CreateOrder(Ordering.Order order)
        {
            var lendingItem = new LendingItem
            {
                ItemID         = order.ItemId,
                OrderStatusID  = (int)order.Status,
                UnitRequestsID = order.RequestingUnitId,
                UnitLendingID  = order.LendingUnitId,
                Remarks        = order.Remarks,
                MemberID       = order.RequestingMemberId,
                OrderDate      = DateTime.Now
            };

            try
            {
                db.LendingItems.Add(lendingItem);
                await db.SaveChangesAsync();

                return(new CreateOrderResponse(lendingItem.ID));
            }
            catch (Exception ex)
            {
                var errors = db.GetValidationErrors();
                return(new CreateOrderResponse(ex.Message));
            }
        }
예제 #2
0
 public static LendingItemDTO ConvertLendingItemToDTO(LendingItem lendingItem)
 {
     using (libraryEntities db = new libraryEntities())
     {
         return(new LendingItemDTO
         {
             codeLending = lendingItem.codeLending,
             codeOtek = lendingItem.codeOtek,
             idSUB = Convert.ToInt32(lendingItem.Lending.idSubscribers),
             comment = lendingItem.comment,
             returnDate = lendingItem.returnDate,
             bookName = db.Books.First(b => b.codeBook == lendingItem.Otakim.codeBook).name
         });
     }
 }
예제 #3
0
        public static bool addLendingItems(LendingItemDTO l)
        {
            using (libraryEntities db = new libraryEntities())
            {
                LendingItem au = db.LendingItems.FirstOrDefault(x => x.codeOtek == l.codeOtek && x.returnDate == null);

                db.LendingItems.Add(Converters.LendingItemConverter.ConvertLendingItemDTOToDAL(l));
                db.Otakims.First(a => a.codeOtek == l.codeOtek).status = "מושאל";
                try
                {
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception e)
                {
                    return(false);
                }
            }
        }
예제 #4
0
        public static bool ReturnD(int code)
        {
            using (libraryEntities db = new libraryEntities())
            {
                LendingItem au = db.LendingItems.FirstOrDefault(x => x.codeOtek == code && x.returnDate == null);
                au.returnDate = DateTime.Today;

                db.Otakims.First(a => a.codeOtek == au.codeOtek).status = "נמצא";

                try
                {
                    db.SaveChanges();
                    return(true);
                }
                catch (Exception e)
                {
                    return(false);
                }
            }
        }
예제 #5
0
 public static LendingItemDTO GetItemToReturn(int code)
 {
     using (libraryEntities db = new libraryEntities())
     {
         LendingItem au = db.LendingItems.FirstOrDefault(x => x.codeOtek == code && x.returnDate == null);
         if (au == null)
         {
             return(null);
         }
         LendingItemDTO uaDTO = Converters.LendingItemConverter.ConvertLendingItemToDTO(au);
         if (uaDTO.returnDate != null)
         {
             return(uaDTO);
         }
         else
         {
             return(uaDTO);
         }
     }
 }
예제 #6
0
        private int[] GetAllowedActions(Member member, LendingItem lendingItem)
        {
            var actions      = new List <int>();
            var isRequesting = member.UnitID == lendingItem.UnitRequestsID;
            var profile      = member.PermissionsProfile;

            if (isRequesting)
            {
                switch ((OrderStatusId)lendingItem.OrderStatusID)
                {
                case OrderStatusId.New when profile.OrderConfirmation:
                    actions.Add((int)OrderStatusId.Approved);
                    actions.Add((int)OrderStatusId.CanceledByRequestingUnit);
                    break;


                case OrderStatusId.Confirmed when profile.OpenAnOrder:
                    actions.Add((int)OrderStatusId.Active);
                    break;
                }
            }
            else
            {
                switch ((OrderStatusId)lendingItem.OrderStatusID)
                {
                case OrderStatusId.Approved when profile.OrderConfirmation:
                    actions.Add((int)OrderStatusId.Confirmed);
                    actions.Add((int)OrderStatusId.CanceledByLendingUnit);
                    break;

                case OrderStatusId.Active when profile.UpdateInventory:
                    actions.Add((int)OrderStatusId.Completed);
                    break;
                }
            }


            return(actions.ToArray());
        }