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); }
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; }
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; }
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; }
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); }
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; }
public bool AddTransportRequisition(TransportRequisition transportRequisition) { _unitOfWork.TransportRequisitionRepository.Add(transportRequisition); _unitOfWork.Save(); return true; }
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; } else { destinationURl = "http://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath + "/Procurement/TransportOrder/NotificationNewRequisitions?recordId=" + transportRequisition.TransportRequisitionID; } _notificationService.AddNotificationForProcurementFromLogistics(destinationURl, transportRequisition); }
public bool DeleteTransportRequisition(TransportRequisition transportRequisition) { if (transportRequisition == null) return false; _unitOfWork.TransportRequisitionRepository.Delete(transportRequisition); _unitOfWork.Save(); return true; }
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; } }