コード例 #1
0
        private TransportRequisitionViewModel BindTransportRequisitionViewModel(TransportRequisition transportRequisition)
        {
            string userPreference = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).DatePreference;

            TransportRequisitionViewModel transportRequisitionViewModel = null;

            if (transportRequisition != null)
            {
                var transportRequisitionObj =
                    _transportRequisitionService.FindById(transportRequisition.TransportRequisitionID);
                transportRequisitionViewModel               = new TransportRequisitionViewModel();
                transportRequisitionViewModel.CertifiedBy   = _userAccountService.FindById(transportRequisitionObj.CertifiedBy).FullName;
                transportRequisitionViewModel.CertifiedDate = transportRequisitionObj.CertifiedDate;
                transportRequisitionViewModel.DateCertified = transportRequisitionObj.CertifiedDate.ToCTSPreferedDateFormat(userPreference);
                //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
                transportRequisitionViewModel.Remark        = transportRequisitionObj.Remark;
                transportRequisitionViewModel.RequestedBy   = _userAccountService.FindById(transportRequisitionObj.RequestedBy).FullName;
                transportRequisitionViewModel.RequestedDate = transportRequisitionObj.RequestedDate;
                transportRequisitionViewModel.DateRequested = transportRequisitionObj.RequestedDate.ToCTSPreferedDateFormat(userPreference);
                //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
                transportRequisitionViewModel.Status   = _workflowStatusService.GetStatusName(WORKFLOW.TRANSPORT_REQUISITION, transportRequisitionObj.Status);
                transportRequisitionViewModel.StatusID = transportRequisitionObj.Status;
                transportRequisitionViewModel.TransportRequisitionID = transportRequisitionObj.TransportRequisitionID;
                transportRequisitionViewModel.TransportRequisitionNo = transportRequisitionObj.TransportRequisitionNo;
                transportRequisitionViewModel.Region  = _adminUnitService.FindById(transportRequisitionObj.RegionID).Name;
                transportRequisitionViewModel.Program = _programService.FindById(transportRequisitionObj.ProgramID).Name;
            }
            return(transportRequisitionViewModel);
        }
コード例 #2
0
 public bool DeleteTransportRequisition(TransportRequisition transportRequisition)
 {
     if (transportRequisition == null)
     {
         return(false);
     }
     _unitOfWork.TransportRequisitionRepository.Delete(transportRequisition);
     _unitOfWork.Save();
     return(true);
 }
コード例 #3
0
        private void AddToNotification(TransportRequisition transportRequisition)
        {
            if (HttpContext.Current == null)
            {
                return;
            }
            string destinationURl;

            if (HttpContext.Current.Request.Url.Host == "localhost")
            {
                destinationURl = "http://" + HttpContext.Current.Request.Url.Authority +
                                 "/Procurement/TransportOrder/NotificationNewRequisitions?recordId=" + transportRequisition.TransportRequisitionID;
                return;
            }
            destinationURl = "http://" + HttpContext.Current.Request.Url.Authority +
                             HttpContext.Current.Request.ApplicationPath +
                             "/Procurement/TransportOrder/NotificationNewRequisitions?recordId=" + transportRequisition.TransportRequisitionID;
            _notificationService.AddNotificationForProcurementFromLogistics(destinationURl, transportRequisition);
        }
コード例 #4
0
        private TransportRequisition BindTransportRequisition(TransportRequisitionViewModel transportRequisitionViewModel)
        {
            string userPreference = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name).DatePreference;

            TransportRequisition transportRequisition = null;

            if (transportRequisitionViewModel != null)
            {
                transportRequisition = new TransportRequisition();
                var firstOrDefault = _userAccountService.FindBy(t => t.UserName == transportRequisitionViewModel.CertifiedBy).FirstOrDefault();
                if (firstOrDefault != null)
                {
                    transportRequisition.CertifiedBy = firstOrDefault.UserProfileID;
                }
                transportRequisition.CertifiedDate = transportRequisitionViewModel.CertifiedDate;
                transportRequisition.CertifiedDate = transportRequisitionViewModel.CertifiedDate;
                //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
                transportRequisition.Remark = transportRequisition.Remark;

                var firstOrDefault1 = _userAccountService.FindBy(t => t.UserName == transportRequisitionViewModel.RequestedBy).FirstOrDefault();
                if (firstOrDefault1 != null)
                {
                    transportRequisition.RequestedBy = firstOrDefault1.UserProfileID;
                }

                transportRequisition.RequestedDate = transportRequisitionViewModel.RequestedDate;
                transportRequisition.RequestedDate = transportRequisitionViewModel.RequestedDate;
                //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
                transportRequisition.Status = transportRequisitionViewModel.StatusID;
                transportRequisition.TransportRequisitionID = transportRequisitionViewModel.TransportRequisitionID;
                transportRequisition.TransportRequisitionNo = transportRequisitionViewModel.TransportRequisitionNo;
                transportRequisition.RegionID  = transportRequisitionViewModel.RegionID;
                transportRequisition.AdminUnit = _adminUnitService.FindById(transportRequisitionViewModel.RegionID);
                transportRequisition.ProgramID = transportRequisitionViewModel.ProgramID;
                transportRequisition.Program   = _programService.FindById(transportRequisitionViewModel.ProgramID);
            }
            return(transportRequisition);
        }
コード例 #5
0
        public void CanNotificationBeSaved()
        {
            var notification = new Notification()
            {
                Text               = "transport order two",
                Url                = _destinationURl,
                RecordId           = 2,
                IsRead             = false,
                TypeOfNotification = "New transport order",
                CreatedDate        = DateTime.Now,
                Id          = 1,
                Application = "Hub Managers"
            };

            var tranportRequsition = new TransportRequisition()
            {
                CertifiedBy            = 1,
                CertifiedDate          = DateTime.Today,
                RequestedBy            = 1,
                RequestedDate          = DateTime.Today,
                TransportRequisitionID = 1,
                TransportRequisitionNo = "TRN-001",
                Status = 1,
                Remark = "Remark",
            };
            var hubId = new List <int>()
            {
                1, 2, 3
            };
            var resultLogistics   = _notificationService.AddNotificationForLogistcisFromEarlyWaring("", 1, 1, "reg-001");
            var resultProcurement = _notificationService.AddNotificationForProcurementFromLogistics("", tranportRequsition);
            var resultHubManager  = _notificationService.AddNotificationForHubManagersFromTransportOrder("", 1, "trans-001", hubId);


            Assert.IsTrue(resultLogistics);
            Assert.IsTrue(resultProcurement);
            Assert.IsTrue(resultHubManager);
        }
コード例 #6
0
ファイル: NotificationService.cs プロジェクト: nathnael/cats
 public bool AddNotificationForProcurementFromLogistics(string destinationURl, TransportRequisition transportRequisition)
 {
     try
     {
         var notification = new Notification
         {
             Text               = "Transport Requisition No:" + transportRequisition.TransportRequisitionNo,
             CreatedDate        = DateTime.Now.Date,
             IsRead             = false,
             Id                 = 1,
             RecordId           = transportRequisition.TransportRequisitionID,
             Url                = destinationURl,
             TypeOfNotification = "New Transport Requisition",
             Application        = Application.PROCUREMENT
         };
         AddNotification(notification);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
コード例 #7
0
        public static TransportRequisitionViewModel BindTransportRequisitionViewModel(TransportRequisition transportRequisition, List <WorkflowStatus> statuses, string datePrefrence, List <UserInfo> users)
        {
            TransportRequisitionViewModel transportRequisitionViewModel = null;

            if (transportRequisition != null)
            {
                transportRequisitionViewModel               = new TransportRequisitionViewModel();
                transportRequisitionViewModel.CertifiedBy   = users.First(t => t.UserProfileID == transportRequisition.CertifiedBy).FullName;
                transportRequisitionViewModel.CertifiedDate = transportRequisition.CertifiedDate;
                transportRequisitionViewModel.DateCertified = transportRequisition.CertifiedDate.ToCTSPreferedDateFormat(datePrefrence);
                //EthiopianDate.GregorianToEthiopian(transportRequisition.CertifiedDate);
                transportRequisitionViewModel.Remark        = transportRequisition.Remark;
                transportRequisitionViewModel.RequestedBy   = users.First(t => t.UserProfileID == transportRequisition.RequestedBy).FullName;
                transportRequisitionViewModel.RequestedDate = transportRequisition.RequestedDate;
                transportRequisitionViewModel.DateRequested = transportRequisition.RequestedDate.ToCTSPreferedDateFormat(datePrefrence);
                //EthiopianDate.GregorianToEthiopian( transportRequisition.RequestedDate);
                transportRequisitionViewModel.Status   = statuses.First(t => t.StatusID == transportRequisition.Status).Description;
                transportRequisitionViewModel.StatusID = transportRequisition.Status;
                transportRequisitionViewModel.TransportRequisitionID = transportRequisition.TransportRequisitionID;
                transportRequisitionViewModel.TransportRequisitionNo = transportRequisition.TransportRequisitionNo;
                transportRequisitionViewModel.Program = transportRequisition.Program.Name;
                transportRequisitionViewModel.Month   =
                    RequestHelper.MonthName(
                        transportRequisition.TransportRequisitionDetails.FirstOrDefault().ReliefRequisition.Month);
                transportRequisitionViewModel.Round = transportRequisition.TransportRequisitionDetails.FirstOrDefault().ReliefRequisition.Round;
                transportRequisitionViewModel.Date  = DateTime.Now.ToCTSPreferedDateFormat(datePrefrence);
            }
            return(transportRequisitionViewModel);
        }
コード例 #8
0
        public bool CreateTransportRequisition(List <List <int> > programRequisitons, int requestedBy)
        {
            if (programRequisitons.Count < 1)
            {
                return(false);
            }
            foreach (var reliefRequisitions in programRequisitons)
            {
                if (reliefRequisitions.Count < 1)
                {
                    break;
                }
                var anyReliefRequisition =
                    _unitOfWork.ReliefRequisitionRepository.FindById(reliefRequisitions.ElementAt(0));
                var region = new AdminUnit();
                if (anyReliefRequisition.RegionID != null)
                {
                    region = _unitOfWork.AdminUnitRepository.FindById(anyReliefRequisition.RegionID.Value);
                }
                var program = new Program();

                if (anyReliefRequisition.ProgramID != null)
                {
                    program = _unitOfWork.ProgramRepository.FindById(anyReliefRequisition.ProgramID);
                }

                var transportRequisition = new TransportRequisition()
                {
                    Status                 = (int)TransportRequisitionStatus.Draft, //Draft
                    RequestedDate          = DateTime.Today,
                    RequestedBy            = requestedBy,                           //should be current user
                    CertifiedBy            = requestedBy,                           //Should be some user ????
                    CertifiedDate          = DateTime.Today,                        //should be date cerified
                    TransportRequisitionNo = Guid.NewGuid().ToString(),
                    RegionID               = region.AdminUnitID,
                    ProgramID              = program.ProgramID
                };

                foreach (var reliefRequisition in reliefRequisitions)
                {
                    transportRequisition.TransportRequisitionDetails.Add(new TransportRequisitionDetail
                    {
                        RequisitionID = reliefRequisition
                    });
                    var orignal =
                        _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionID == reliefRequisition).
                        FirstOrDefault();
                    orignal.Status = (int)ReliefRequisitionStatus.TransportRequisitionCreated;
                }

                AddTransportRequisition(transportRequisition);

                var year = transportRequisition.RequestedDate.Year;
                transportRequisition.TransportRequisitionNo = string.Format("{0}/{1}/{2}/{3}",
                                                                            program.ShortCode, region.AdminUnitID,
                                                                            transportRequisition.TransportRequisitionID,
                                                                            year);

                _unitOfWork.Save();
            }
            return(true);
        }
コード例 #9
0
 public bool EditTransportRequisition(TransportRequisition transportRequisition)
 {
     _unitOfWork.TransportRequisitionRepository.Edit(transportRequisition);
     _unitOfWork.Save();
     return(true);
 }
コード例 #10
0
        public void Init()
        {
            _transportRequisitions = new List <TransportRequisition>();
            _reliefRequisitions    = new List <int> {
                1
            };
            var unitOfWork       = new Mock <IUnitOfWork>();
            var unitOfWorkNotify = new Mock <IUnitOfWork>();

            _transportRequisition = new TransportRequisition
            {
                Status                      = 1,
                RequestedDate               = DateTime.Today,
                RequestedBy                 = 1,
                CertifiedBy                 = 1,
                CertifiedDate               = DateTime.Today,
                Remark                      = "",
                TransportRequisitionNo      = "REQ-001",
                TransportRequisitionID      = 1,
                TransportRequisitionDetails = new List <TransportRequisitionDetail>()
                {
                    new TransportRequisitionDetail
                    {
                        RequisitionID = 1,
                        TransportRequisitionDetailID
                            = 1,
                        TransportRequisitionID = 1
                    }
                }
            };
            reliefRequisitions = new List <ReliefRequisition>()
            {
                new ReliefRequisition()
                {
                    RegionID          = 1,
                    ProgramID         = 1,
                    CommodityID       = 1,
                    ZoneID            = 2,
                    RequisitionNo     = "REQ-001",
                    Round             = 1,
                    RegionalRequestID = 1,
                    RequisitionID     = 1,
                    Status            = 4,

                    AdminUnit = new AdminUnit
                    {
                        AdminUnitID = 2,
                        Name        = "Zone1"
                    },
                    AdminUnit1 = new AdminUnit
                    {
                        AdminUnitID = 1,
                        Name        = "Region1"
                    },
                    Commodity = new Commodity
                    {
                        CommodityID   = 1,
                        CommodityCode = "C1",
                        Name          = "CSB"
                    },
                    //HubAllocations = new List<HubAllocation>(){new HubAllocation()
                    //                    {
                    //                        HubAllocationID = 1,
                    //                        HubID = 1,
                    //                        RequisitionID = 1,
                    //                        Hub = new Hub
                    //                                  {
                    //                                      HubID = 1,
                    //                                      Name = "Test Hub",

                    //                                  }

                    //                    }},

                    ReliefRequisitionDetails = new List <ReliefRequisitionDetail>
                    {
                        new ReliefRequisitionDetail()
                        {
                            RequisitionID       = 1,
                            RequisitionDetailID = 1,
                            Amount       = 100,
                            CommodityID  = 1,
                            FDPID        = 1,
                            BenficiaryNo = 10,
                            DonorID      = 1,
                            FDP          = new FDP
                            {
                                AdminUnitID = 1,
                                FDPID       = 1,
                                Name        = "FDP1"
                            }
                        },
                        new ReliefRequisitionDetail()
                        {
                            RequisitionID       = 1,
                            RequisitionDetailID = 2,
                            Amount       = 50,
                            CommodityID  = 1,
                            FDPID        = 2,
                            BenficiaryNo = 10,
                            DonorID      = 1,
                            FDP          = new FDP
                            {
                                AdminUnitID = 1,
                                FDPID       = 2,
                                Name        = "FDP2"
                            }
                        },
                        new ReliefRequisitionDetail()
                        {
                            RequisitionID       = 1,
                            RequisitionDetailID = 3,
                            Amount       = 60,
                            CommodityID  = 1,
                            FDPID        = 3,
                            BenficiaryNo = 10,
                            DonorID      = 1,
                            FDP          = new FDP
                            {
                                AdminUnitID = 1,
                                FDPID       = 3,
                                Name        = "FDP3"
                            }
                        },
                        new ReliefRequisitionDetail()
                        {
                            RequisitionID       = 1,
                            RequisitionDetailID = 4,
                            Amount       = 70,
                            CommodityID  = 1,
                            FDPID        = 2,
                            BenficiaryNo = 10,
                            DonorID      = 1,
                            FDP          = new FDP
                            {
                                AdminUnitID = 1,
                                FDPID       = 4,
                                Name        = "FDP4"
                            }
                        }
                    }
                }
            };
            var _workflowstatuses = new List <WorkflowStatus>
            {
                new WorkflowStatus
                {
                    StatusID    = 1,
                    WorkflowID  = 2,
                    Description = "Approved",
                }
            };

            var _hubAllocation = new List <HubAllocation>
            {
                new HubAllocation
                {
                    RequisitionID   = 1,
                    HubID           = 1,
                    HubAllocationID = 1,
                    Hub             = new Models.Hub()
                    {
                        Name  = "Hub 1",
                        HubID = 1,
                    }
                }
            };

            _transportRequisition = new TransportRequisition()
            {
                Status    = 1,
                AdminUnit = new AdminUnit {
                    AdminUnitID = 2,
                    Name        = "Zone1"
                },
                RequestedBy            = 1,
                CertifiedBy            = 1,
                CertifiedDate          = DateTime.Today,
                RequestedDate          = DateTime.Today,
                TransportRequisitionID = 1,
                TransportRequisitionNo = "T-001",
                Remark = "comment"
            };
            var mockReliefRequisitionRepository = new Mock <IGenericRepository <ReliefRequisition> >();

            mockReliefRequisitionRepository.Setup(
                t => t.Get(It.IsAny <Expression <Func <ReliefRequisition, bool> > >(), It.IsAny <Func <IQueryable <ReliefRequisition>, IOrderedQueryable <ReliefRequisition> > >(), It.IsAny <string>())).Returns(
                (Expression <Func <ReliefRequisition, bool> > perdicate, Func <IQueryable <ReliefRequisition>, IOrderedQueryable <ReliefRequisition> > obrderBy, string prop) =>
            {
                var
                result = reliefRequisitions.AsQueryable();
                return(result);
            }
                );

            mockReliefRequisitionRepository.Setup(t => t.FindById(It.IsAny <int>())).Returns((int id) => reliefRequisitions
                                                                                             .ToList().
                                                                                             Find
                                                                                                 (t =>
                                                                                                 t.
                                                                                                 RequisitionID ==
                                                                                                 id));
            unitOfWork.Setup(t => t.ReliefRequisitionRepository).Returns(mockReliefRequisitionRepository.Object);
            var transportRequisitionReqository = new Mock <IGenericRepository <TransportRequisition> >();

            transportRequisitionReqository.Setup(t => t.Add(It.IsAny <TransportRequisition>())).Returns(
                (TransportRequisition transportRequisiton) =>
            {
                _transportRequisitions.Add(transportRequisiton);
                return(true);
            });
            transportRequisitionReqository.Setup(t => t.FindById(It.IsAny <int>())).Returns((int id) =>
            {
                return
                (_transportRequisition);
            });
            unitOfWork.Setup(t => t.TransportRequisitionRepository).Returns(transportRequisitionReqository.Object);
            unitOfWork.Setup(t => t.Save());

            var workflowStatusRepository = new Mock <IGenericRepository <WorkflowStatus> >();

            workflowStatusRepository.Setup(
                t =>
                t.Get(It.IsAny <Expression <Func <WorkflowStatus, bool> > >(),
                      It.IsAny <Func <IQueryable <WorkflowStatus>, IOrderedQueryable <WorkflowStatus> > >(),
                      It.IsAny <string>())).Returns(_workflowstatuses);

            unitOfWork.Setup(t => t.WorkflowStatusRepository).Returns(workflowStatusRepository.Object);
            var hubAllocationRepository = new Mock <IGenericRepository <HubAllocation> >();

            hubAllocationRepository.Setup(
                t =>
                t.Get(It.IsAny <Expression <Func <HubAllocation, bool> > >(),
                      It.IsAny <Func <IQueryable <HubAllocation>, IOrderedQueryable <HubAllocation> > >(),
                      It.IsAny <string>())).Returns(_hubAllocation);
            unitOfWork.Setup(t => t.HubAllocationRepository).Returns(hubAllocationRepository.Object);

            var adminUnitRepository = new Mock <IGenericRepository <AdminUnit> >();

            adminUnitRepository.Setup(t => t.FindById(It.IsAny <int>())).Returns(new
                                                                                 AdminUnit()
            {
                AdminUnitID = 2,
                Name        = "Zone1",
                AdminUnit2  = new AdminUnit
                {
                    AdminUnitID
                         = 1,
                    Name =
                        "Region1"
                }
            }
                                                                                 );
            unitOfWork.Setup(t => t.AdminUnitRepository).Returns(adminUnitRepository.Object);


            var programRepository = new Mock <IGenericRepository <Program> >();

            programRepository.Setup(t => t.FindById(It.IsAny <int>())).Returns(new Program
            {
                ProgramID   = 1,
                Name        = "PSNP",
                Description = "PSNP Des."
            });
            unitOfWork.Setup(t => t.ProgramRepository).Returns(programRepository.Object);

            _notificationService         = new NotificationService(unitOfWorkNotify.Object);
            _transportRequisitionService = new TransportRequisitionService(unitOfWork.Object, _notificationService);
        }