public ActionResult EditPlannedBT(int id = 0, string selectedDepartment = null) { BusinessTrip businessT = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); ViewBag.JSDatePattern = MvcApplication.JSDatePattern; if (businessT == null || (!businessT.Status.HasFlag(BTStatus.Planned))) { return(HttpNotFound()); } else { ViewBag.EmployeeInformation = businessT.BTof.LastName + " " + businessT.BTof.FirstName + " (" + businessT.BTof.EID + ") from " + businessT.BTof.Department.DepartmentName; if (businessT.BTof.Visa != null) { ViewBag.EmployeeVisa = businessT.BTof.Visa; } } BusinessTripViewModel businessTrip = new BusinessTripViewModel(businessT); ViewBag.SelectedDepartment = selectedDepartment; ViewBag.LocationsList = LocationsDropDownList(businessT.LocationID); ViewBag.UnitsList = UnitsDropDownList(businessT.UnitID); return(View("EditPlannedBT", businessTrip)); }
public void Constructor_GivenABusinessTripEntity_InitializationSuccesful() { BusinessTripEntity businessTripEntity = new BusinessTripEntity() { StartingDate = DateTime.Now, ClientLocation = "Location", ClientName = "Name", MeansOfTransportation = "Car", Accomodation = "acc", Status = BusinessTripStatus.Accepted, Id = Guid.NewGuid(), User = new UserEntity() { Name = "Name" } }; var businessTripViewModel = new BusinessTripViewModel(businessTripEntity); Assert.AreEqual(businessTripViewModel.StartingDate, businessTripEntity.StartingDate); Assert.AreEqual(businessTripViewModel.Location, businessTripEntity.ClientLocation); Assert.AreEqual(businessTripViewModel.Name, businessTripEntity.User.Name); Assert.AreEqual(businessTripViewModel.MeansOfTransportaion, businessTripEntity.MeansOfTransportation); Assert.AreEqual(businessTripViewModel.Accomodation, businessTripEntity.Accomodation); Assert.AreEqual(businessTripViewModel.Status, businessTripEntity.Status); Assert.AreEqual(businessTripViewModel.Id, businessTripEntity.Id); }
public void CanFilterTripsByProject() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns(new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 2, Project = new Project { Symbol = "p2" } }, new BusinessTrip { BusinessTripID = 3, Project = new Project { Symbol = "p2" } }, new BusinessTrip { BusinessTripID = 4, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 5, Project = new Project { Symbol = "p1" } }, new BusinessTrip { BusinessTripID = 6, Project = new Project { Symbol = "p3" } } }.AsQueryable()); BusinessTripController controller = new BusinessTripController(mock.Object); controller.PageSize = 6; //Act BusinessTripViewModel result1 = controller.List("p1").ViewData.Model as BusinessTripViewModel; BusinessTripViewModel result2 = controller.List("p2").ViewData.Model as BusinessTripViewModel; BusinessTrip[] tripArraP1 = result1.BusinessTrips.ToArray(); BusinessTrip[] tripArraP2 = result2.BusinessTrips.ToArray(); //Assert Assert.Equal(3, tripArraP1.Length); Assert.Equal(2, tripArraP2.Length); Assert.Equal(1, tripArraP1[0].BusinessTripID); }
public ActionResult CancelReportedBTConfirm(int id = 0, string cancelComment = "", string selectedDepartment = null) { BusinessTrip businessTrip = null; if (repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault() == null) { return(HttpNotFound()); } else { businessTrip = new BusinessTrip(repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault()); businessTrip.CancelComment = cancelComment; if ((businessTrip.Status == (BTStatus.Confirmed | BTStatus.Reported)) && ((businessTrip.CancelComment != null) && (businessTrip.CancelComment != String.Empty))) { Employee author = repository.Users.Where(e => e.EID == HttpContext.User.Identity.Name).FirstOrDefault(); List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>(); businessTrip.Status = BTStatus.Confirmed | BTStatus.Cancelled; if (businessTrip.BTof.Visa != null) { businessTrip.BTof.Visa.DaysUsedInBT -= CountingDaysUsedInBT(businessTrip); businessTrip.BTof.Visa.EntriesUsedInBT--; } try { repository.SaveBusinessTrip(businessTrip); } catch (DbUpdateConcurrencyException) { return(Json(new { error = modelError })); } catch (VacationAlreadyExistException) { return(Json(new { error = btCreationError })); } selectedBusinessTripsList.Add(businessTrip); messenger.Notify(new Message(MessageType.ACCCancelsConfirmedReportedToADM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCCancelsConfirmedReportedToBTM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCCancelsConfirmedReportedToEMP, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCCancelsConfirmedReportedToResponsible, selectedBusinessTripsList, author)); return(Json(new { success = "success" })); } else { ModelState.AddModelError("", "Please, enter cancel comment."); BusinessTripViewModel bTripmodel = new BusinessTripViewModel(businessTrip); ViewBag.SelectedDepartment = selectedDepartment; return(View(bTripmodel)); } } }
public ActionResult ShowAccountableBTData(int id = 0) { BusinessTrip businessTrip = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessTrip == null) { return(HttpNotFound()); } BusinessTripViewModel businessTripModel = new BusinessTripViewModel(businessTrip); return(View(businessTripModel)); }
public static string CustomBtModelStyle(this HtmlHelper helper, BusinessTripViewModel businessTripModel) { if (businessTripModel != null) { if (businessTripModel.Status == (BTStatus.Confirmed | BTStatus.Cancelled)) { return("color: red; text-decoration: line-through;"); } } return(""); }
public ActionResult ShowBTData(int id = 0, string selectedDepartment = null) { BusinessTrip businessTrip = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessTrip == null) { return(HttpNotFound()); } ViewBag.SelectedDepartment = selectedDepartment; BusinessTripViewModel businessTripModel = new BusinessTripViewModel(businessTrip); return(View(businessTripModel)); }
public ActionResult ShowClosedBT(int id = 0, string searchString = "") { BusinessTrip bTrip = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (bTrip == null) { return(HttpNotFound()); } BusinessTripViewModel btModel = new BusinessTripViewModel(bTrip); return(View(btModel)); }
private async Task <ActionResult> GetViewAsync(int?id, string viewName) { try { BusinessTripDTO btDto = await _businessTripService.FindByIdAsync(id); BusinessTripViewModel bt = MapDTOWithViewModel(btDto); return(View(viewName, bt)); } catch (ValidationException ex) { _logger.Warn(ex.Message); return(View("Error", new string[] { ex.Message })); } }
public async Task <ActionResult> Create(BusinessTripViewModel bt) { try { BusinessTripDTO btDto = MapViewModelWithDTO(bt); await(_businessTripService as BusinessTripService).CreateAsync(btDto); return(RedirectToAction("Index")); } catch (ValidationException ex) { _logger.Warn(ex.Message); ModelState.AddModelError(ex.Property, ex.Message); } ViewBag.Employees = await GetSelectListEmployeesAsync(); return(View("Create", bt)); }
//public ActionResult Reject_BT_DIR_Confirm(int id = 0, string rejectComment = "", string selectedDepartment = null) public ActionResult Reject_BT_DIR_Confirm(BusinessTrip businessTrip, string selectedDepartment = null) { //BusinessTrip businessTrip = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessTrip == null) { return(HttpNotFound()); } else { businessTrip = RewriteBTsPropsFromRepositoryWhenReject(businessTrip); businessTrip = RewriteBTsPropsFromRepositoryBTM(businessTrip); if ((businessTrip.RejectComment != null) && (businessTrip.RejectComment != String.Empty)) { Employee author = repository.Users.Where(e => e.EID == HttpContext.User.Identity.Name).FirstOrDefault(); List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>(); businessTrip.Status = BTStatus.Planned | BTStatus.Modified; businessTrip.OrderStartDate = null; businessTrip.OrderEndDate = null; businessTrip.DaysInBtForOrder = null; try { repository.SaveBusinessTrip(businessTrip); } catch (DbUpdateConcurrencyException) { return(Json(new { error = modelError })); } selectedBusinessTripsList.Add(businessTrip); messenger.Notify(new Message(MessageType.DIRRejectsConfirmedToADM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.DIRRejectsConfirmedToEMP, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.DIRRejectsConfirmedToBTM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.DIRRejectsConfirmedToResponsible, selectedBusinessTripsList, author)); //messenger.Notify(new Message(MessageType.DIRRejectsConfirmedToACC, selectedBusinessTripsList, author)); return(RedirectToAction("DIRView", "Home", new { tab = Tabs.DIR.BusinessTrips, selectedDepartment = selectedDepartment })); } else { ModelState.AddModelError("", "Please, enter reject comment."); BusinessTripViewModel bTripModel = new BusinessTripViewModel(businessTrip); ViewBag.SelectedDepartment = selectedDepartment; return(View(bTripModel)); } } }
public void CustomBtModelStyle_CancelledRegisteredBt_RedAndStrikeStyle() { //Arrange HtmlHelper helper = new HtmlHelper(viewContext, new FakeViewDataContainer()); BusinessTrip businessTrip = new BusinessTrip { BusinessTripID = 1, Status = BTStatus.Cancelled | BTStatus.Registered, UnitID = 1, Unit = new Unit() }; BusinessTripViewModel btModel = new BusinessTripViewModel(businessTrip); //Act string result = helper.CustomBtModelStyle(btModel); string expected = ""; //Assert Assert.AreEqual(result, expected); }
public void ShowBTData_ExistingBusinessTripID_ShowBTDataView() { //Arrange BusinessTrip bTrip = mock.Object.BusinessTrips.Where(b => b.BusinessTripID == 12).FirstOrDefault(); //Act var result = (ViewResult)controller.ShowBTData(12); BusinessTripViewModel resultModel = (BusinessTripViewModel)result.Model; // Assert Assert.AreEqual("", result.ViewName); Assert.IsInstanceOf(typeof(ViewResult), result); Assert.IsInstanceOf(typeof(BusinessTripViewModel), ((ViewResult)result).Model); Assert.AreEqual(12, resultModel.BusinessTripID); }
public void CanSendPaginationViewModel() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns(new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Destination = new Destination { Name = "d1" } }, new BusinessTrip { BusinessTripID = 2, Destination = new Destination { Name = "d2" } }, new BusinessTrip { BusinessTripID = 3, Destination = new Destination { Name = "d3" } }, new BusinessTrip { BusinessTripID = 4, Destination = new Destination { Name = "d4" } }, new BusinessTrip { BusinessTripID = 5, Destination = new Destination { Name = "d5" } } }.AsQueryable()); BusinessTripController controller = new BusinessTripController(mock.Object); //Act BusinessTripViewModel result = controller.List(null, 2).ViewData.Model as BusinessTripViewModel; //Assert PagingInfo pagingInfo = result.PagingInfo; Assert.Equal(2, pagingInfo.CurrentPage); Assert.Equal(2, pagingInfo.ItemsPerPage); Assert.Equal(5, pagingInfo.TotalItems); Assert.Equal(3, pagingInfo.TotalPages); }
private BusinessTripViewModel MapDTOWithViewModel(BusinessTripDTO btDTO) { Mapper.Initialize(cfg => { cfg.CreateMap <BusinessTripDTO, BusinessTripViewModel>(); cfg.CreateMap <EmployeeDTO, EmployeeViewModel>() .ForMember(e => e.AnnualLeaves, opt => opt.Ignore()) .ForMember(e => e.Birth, opt => opt.Ignore()) .ForMember(e => e.BusinessTrips, opt => opt.Ignore()) .ForMember(e => e.Contacts, opt => opt.Ignore()) .ForMember(e => e.Education, opt => opt.Ignore()) .ForMember(e => e.Passport, opt => opt.Ignore()) .ForMember(e => e.Post, opt => opt.Ignore()); }); BusinessTripViewModel bt = Mapper.Map <BusinessTripDTO, BusinessTripViewModel>(btDTO); return(bt); }
public async Task Delete_Get_ModelIsValid_RetrievesBusinessTripFromModel() { Mock <BusinessTripService> mock = new Mock <BusinessTripService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).ReturnsAsync((int?_id) => new BusinessTripDTO { Id = _id.Value, Name = "02.09.2018_026" }); BusinessTripController controller = GetNewBusinessTripController(mock.Object, null); ViewResult result = (await controller.Delete(2)) as ViewResult; BusinessTripViewModel model = result.ViewData.Model as BusinessTripViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("02.09.2018_026", model.Name); }
public async Task Edit_Post_ModelIsInvalid_RetrievesBusinessTripFromModel() { Mock <BusinessTripService> bmock = new Mock <BusinessTripService>(); bmock.Setup(m => m.EditAsync(It.IsAny <BusinessTripDTO>())).Throws(new ValidationException("", "")); Mock <EmployeeService> emock = new Mock <EmployeeService>(); BusinessTripController controller = GetNewBusinessTripController(bmock.Object, emock.Object); ViewResult result = (await controller.Edit(new BusinessTripViewModel { Id = 2, Name = "02.09.2018_026" })) as ViewResult; BusinessTripViewModel model = result.ViewData.Model as BusinessTripViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("02.09.2018_026", model.Name); }
public ActionResult Reject_BT_DIR(int id = 0, string jsonRowVersionData = "", string selectedDepartment = null) { BusinessTrip businessTrip = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessTrip == null) { return(HttpNotFound()); } if (jsonRowVersionData != "") { businessTrip.RowVersion = JsonConvert.DeserializeObject <byte[]>(jsonRowVersionData.Replace(" ", "+")); } ViewBag.SelectedDepartment = selectedDepartment; BusinessTripViewModel btripModel = new BusinessTripViewModel(businessTrip); return(View(btripModel)); }
public ActionResult EditFinishedBT(int id = 0, int selectedYear = 0) { ViewBag.JSDatePattern = MvcApplication.JSDatePattern; BusinessTrip businessT = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessT == null || businessT.EndDate.Date >= DateTime.Now.ToLocalTimeAzure().Date) { return(HttpNotFound()); } ViewBag.EmployeeInformation = businessT.BTof.LastName + " " + businessT.BTof.FirstName + " (" + businessT.BTof.EID + ") from " + businessT.BTof.Department.DepartmentName; BusinessTripViewModel businessTrip = new BusinessTripViewModel(businessT); ViewBag.SelectedYear = selectedYear; ViewBag.LocationsList = LocationsDropDownList(businessT.LocationID); ViewBag.UnitsList = UnitsDropDownList(businessT.UnitID); return(View("EditFinishedBT", businessTrip)); }
public ActionResult EditReportedBT(int id = 0, string selectedDepartment = null, string searchString = "") { ViewBag.JSDatePattern = MvcApplication.JSDatePattern; BusinessTrip businessT = repository.BusinessTrips.Where(b => b.BusinessTripID == id).FirstOrDefault(); if (businessT == null || (!businessT.Status.HasFlag(BTStatus.Confirmed | BTStatus.Reported))) { return(HttpNotFound()); } else { ViewBag.EmployeeInformation = businessT.BTof.LastName + " " + businessT.BTof.FirstName + " (" + businessT.BTof.EID + ") from " + businessT.BTof.Department.DepartmentName; } if (businessT.AccComment == null || businessT.AccComment == String.Empty) { businessT.AccComment = defaultAccComment; } BusinessTripViewModel businessTrip = new BusinessTripViewModel(businessT); ViewBag.SelectedDepartment = selectedDepartment; ViewBag.LocationsList = LocationsDropDownList(businessT.LocationID); if (businessT.StartDate > DateTime.Now.ToLocalTimeAzure().Date&& businessT.EndDate >= DateTime.Now.ToLocalTimeAzure().Date) { return(View("EditReportedFutureBT", businessTrip)); } else if (businessT.EndDate < DateTime.Now.ToLocalTimeAzure().Date) { return(View("EditReportedFinishedBT", businessTrip)); } else { return(View("EditReportedCurrentBT", businessTrip)); } }
public void prepareToXLSExportADM_NullableAreNotNull_Stringified() { //Arrange businessTripViewModel = new BusinessTripViewModel(mock.Object.BusinessTrips[0]); businessTripViewModel.Status = BTStatus.Confirmed | BTStatus.Reported; //Act List <string> result = businessTripViewModel.PrepareToXLSExportVU(); //Assert Assert.AreEqual(10, result.Count); Assert.AreEqual("1", result[0]); Assert.AreEqual("andl", result[1]); Assert.AreEqual("Zarose Anastasia", result[2]); Assert.AreEqual("LDF", result[3]); Assert.AreEqual(string.Format("{0:yyyy-MM-dd}", new DateTime(2014, 12, 01)), result[4]); Assert.AreEqual(string.Format("{0:yyyy-MM-dd}", new DateTime(2014, 12, 10)), result[5]); Assert.AreEqual("Unknown", result[6]); Assert.AreEqual("", result[7]); Assert.AreEqual("", result[8]); Assert.AreEqual("", result[9]); }
public ActionResult EditFinishedBT(BusinessTrip businessTrip, int selectedYear = 0) { if (businessTrip == null) { return(HttpNotFound()); } BusinessTrip btFromRepository = repository.BusinessTrips.Where(b => b.BusinessTripID == businessTrip.BusinessTripID).FirstOrDefault(); if (btFromRepository == null) { return(HttpNotFound()); } else { if (ModelState.IsValid) { LocationsDropDownList(businessTrip.LocationID); Employee author = repository.Users.Where(e => e.EID == HttpContext.User.Identity.Name).FirstOrDefault(); List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>(); businessTrip.BTof = btFromRepository.BTof; businessTrip.Status = btFromRepository.Status; businessTrip.OldStartDate = btFromRepository.StartDate; businessTrip.OldEndDate = btFromRepository.EndDate; businessTrip.OldLocationID = btFromRepository.LocationID; businessTrip.OldLocationTitle = btFromRepository.Location.Title; int oldDaysUsedInBT = CountingDaysUsedInBT(btFromRepository); businessTrip.LastCRUDedBy = btFromRepository.LastCRUDedBy; businessTrip.LastCRUDTimestamp = btFromRepository.LastCRUDTimestamp; if (businessTrip.BTof.Visa != null) { businessTrip.BTof.Visa.DaysUsedInBT -= oldDaysUsedInBT; businessTrip.BTof.Visa.DaysUsedInBT += CountingDaysUsedInBT(businessTrip); } try { repository.SaveBusinessTrip(businessTrip); selectedBusinessTripsList.Add(businessTrip); messenger.Notify(new Message(MessageType.PUEditsFInishedBT, selectedBusinessTripsList, author)); //messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToBTM, selectedBusinessTripsList, author)); //messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToDIR, selectedBusinessTripsList, author)); //messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToEMP, selectedBusinessTripsList, author)); //messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToResponsible, selectedBusinessTripsList, author)); } catch (DbUpdateConcurrencyException) { return(Json(new { error = modelError })); } catch (VacationAlreadyExistException) { return(Json(new { error = btCreationError })); } return(Json(new { success = "success" })); } } BusinessTripViewModel btTripModel = new BusinessTripViewModel(businessTrip); btTripModel.BTof = repository.BusinessTrips.Where(bt => bt.BusinessTripID == businessTrip.BusinessTripID).Select(b => b.BTof).FirstOrDefault(); ViewBag.JSDatePattern = MvcApplication.JSDatePattern; ViewBag.SelectedYear = selectedYear; ViewBag.LocationsList = LocationsDropDownList(btTripModel.LocationID); ViewBag.UnitsList = UnitsDropDownList(btTripModel.LocationID); return(View("EditReportedFinishedBT", businessTrip)); }
public void SetUp() { mock = Mock_Repository.CreateMock(); businessTripViewModel = new BusinessTripViewModel(new BusinessTrip()); }
public ActionResult EditReportedBT(BusinessTrip businessTrip, string selectedDepartment = null) { BusinessTrip btFromRepository = new BusinessTrip(repository.BusinessTrips.Where(b => b.BusinessTripID == businessTrip.BusinessTripID).FirstOrDefault()); if (businessTrip == null || btFromRepository == null) { return(HttpNotFound()); } else { if (ModelState.IsValid && businessTrip.Status.HasFlag(BTStatus.Reported)) { LocationsDropDownList(businessTrip.LocationID); Employee author = repository.Users.Where(e => e.EID == HttpContext.User.Identity.Name).FirstOrDefault(); List <BusinessTrip> selectedBusinessTripsList = new List <BusinessTrip>(); businessTrip.Status = (btFromRepository.Status | BTStatus.Modified) & ~BTStatus.Reported; businessTrip.OldStartDate = btFromRepository.StartDate; businessTrip.OldEndDate = btFromRepository.EndDate; businessTrip.OldLocationID = btFromRepository.LocationID; businessTrip.OldLocationTitle = btFromRepository.Location.Title; int oldDaysUsedInBT = CountingDaysUsedInBT(btFromRepository); //btFromRepository.StartDate = businessTrip.StartDate; //btFromRepository.EndDate = businessTrip.EndDate; //btFromRepository.LocationID = businessTrip.LocationID; //btFromRepository.OrderStartDate = businessTrip.OrderStartDate; //btFromRepository.OrderEndDate = businessTrip.OrderEndDate; //btFromRepository.DaysInBtForOrder = businessTrip.DaysInBtForOrder; //btFromRepository.RowVersion = businessTrip.RowVersion; businessTrip.BTof = btFromRepository.BTof; businessTrip.CancelComment = btFromRepository.CancelComment; businessTrip.Comment = btFromRepository.Comment; businessTrip.Flights = btFromRepository.Flights; businessTrip.FlightsConfirmed = btFromRepository.FlightsConfirmed; businessTrip.Habitation = btFromRepository.Habitation; businessTrip.HabitationConfirmed = btFromRepository.HabitationConfirmed; businessTrip.Invitation = btFromRepository.Invitation; businessTrip.Manager = btFromRepository.Manager; businessTrip.Purpose = btFromRepository.Purpose; businessTrip.RejectComment = btFromRepository.RejectComment; businessTrip.BTMComment = btFromRepository.BTMComment; businessTrip.Responsible = btFromRepository.Responsible; businessTrip.LastCRUDedBy = btFromRepository.LastCRUDedBy; businessTrip.LastCRUDTimestamp = btFromRepository.LastCRUDTimestamp; businessTrip.Location = btFromRepository.Location; businessTrip.AccComment = btFromRepository.AccComment; if (businessTrip.BTof.Visa != null) { businessTrip.BTof.Visa.DaysUsedInBT -= oldDaysUsedInBT; businessTrip.BTof.Visa.EntriesUsedInBT--; } try { repository.SaveBusinessTrip(businessTrip); selectedBusinessTripsList.Add(businessTrip); messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToADM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToBTM, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToDIR, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToEMP, selectedBusinessTripsList, author)); messenger.Notify(new Message(MessageType.ACCModifiesConfirmedReportedToResponsible, selectedBusinessTripsList, author)); } catch (DbUpdateConcurrencyException) { return(Json(new { error = modelError })); } catch (VacationAlreadyExistException) { return(Json(new { error = btCreationError })); } return(Json(new { success = "success" })); } } BusinessTripViewModel btTripModel = new BusinessTripViewModel(businessTrip); LocationsDropDownList(businessTrip.LocationID); btTripModel.BTof = repository.BusinessTrips.Where(bt => bt.BusinessTripID == businessTrip.BusinessTripID).Select(b => b.BTof).FirstOrDefault(); ViewBag.SelectedDepartment = selectedDepartment; ViewBag.LocationsList = LocationsDropDownList(btTripModel.LocationID); if (businessTrip.StartDate > DateTime.Now.ToLocalTimeAzure().Date) { return(View("EditReportedFutureBT", btTripModel)); } else if (businessTrip.EndDate < DateTime.Now.ToLocalTimeAzure().Date) { return(View("EditReportedFinishedBT", businessTrip)); } else { return(View("EditReportedCurrentBT", businessTrip)); } }
public void CanPaginate() { //Arrange Mock <IBusinessTripRepository> mock = new Mock <IBusinessTripRepository>(); mock.Setup(t => t.BusinessTrips).Returns((new BusinessTrip[] { new BusinessTrip { BusinessTripID = 1, Destination = new Destination { Name = "d1" } }, new BusinessTrip { BusinessTripID = 2, Destination = new Destination { Name = "d2" } }, new BusinessTrip { BusinessTripID = 3, Destination = new Destination { Name = "d3" } }, new BusinessTrip { BusinessTripID = 4, Destination = new Destination { Name = "d4" } }, new BusinessTrip { BusinessTripID = 5, Destination = new Destination { Name = "d5" } }, new BusinessTrip { BusinessTripID = 6, Destination = new Destination { Name = "d6" } }, new BusinessTrip { BusinessTripID = 7, Destination = new Destination { Name = "d7" } }, new BusinessTrip { BusinessTripID = 8, Destination = new Destination { Name = "d8" } }, new BusinessTrip { BusinessTripID = 9, Destination = new Destination { Name = "d9" } }, new BusinessTrip { BusinessTripID = 10, Destination = new Destination { Name = "d10" } }, new BusinessTrip { BusinessTripID = 11, Destination = new Destination { Name = "d11" } } }).AsQueryable <BusinessTrip>()); BusinessTripController controller = new BusinessTripController(mock.Object); controller.PageSize = 10; //Act BusinessTripViewModel firstPageResult = controller.List(null, 1).ViewData.Model as BusinessTripViewModel; BusinessTripViewModel secondPageResult = controller.List(null, 2).ViewData.Model as BusinessTripViewModel; //Assert BusinessTrip[] firstPageTripsArray = firstPageResult.BusinessTrips.ToArray(); BusinessTrip[] secondPageTripsArray = secondPageResult.BusinessTrips.ToArray(); Assert.True(firstPageTripsArray.Length == 10); Assert.True(secondPageTripsArray.Length == 1); Assert.Equal("d1", firstPageTripsArray[0].Destination.Name); Assert.Equal("d10", firstPageTripsArray[9].Destination.Name); Assert.Equal("d11", secondPageTripsArray[0].Destination.Name); }
public ActionResult Plan(BusinessTrip BTrip, string selectedDepartment = null) { ViewBag.JSDatePattern = MvcApplication.JSDatePattern; ViewBag.SelectedDepartment = selectedDepartment; ViewBag.LocationsList = LocationsDropDownList(BTrip.LocationID); ViewBag.UnitsList = UnitsDropDownList(BTrip.UnitID); BusinessTrip businessTrip = BTrip; if (businessTrip.BusinessTripID == 0) { BusinessTrip BussinesTrip = (from e in repository.Employees where e.EmployeeID == businessTrip.EmployeeID from bts in e.BusinessTrips where (businessTrip.StartDate == bts.StartDate || businessTrip.EndDate == bts.EndDate) select bts).FirstOrDefault(); if (BussinesTrip != null && !BussinesTrip.Status.HasFlag(BTStatus.Cancelled)) { if (businessTrip.StartDate == businessTrip.EndDate) { if (BussinesTrip.LocationID == businessTrip.LocationID) { return(Json(new { error = btDuplication })); } } else { if ((businessTrip.StartDate == BussinesTrip.StartDate && businessTrip.EndDate == BussinesTrip.EndDate) || BussinesTrip.LocationID == businessTrip.LocationID) { return(Json(new { error = btDuplication })); } } } foreach (BusinessTrip bt in repository.BusinessTrips.Where(bt => bt.EmployeeID == BTrip.EmployeeID)) { if (!bt.Status.HasFlag(BTStatus.Cancelled)) { if ((BTrip.StartDate == bt.StartDate) && (BTrip.EndDate == bt.EndDate)) { return(Json(new { error = btDuplication })); } if ((BTrip.EndDate == bt.StartDate) || (BTrip.StartDate == bt.EndDate) || (BTrip.StartDate == bt.StartDate) || (BTrip.EndDate == bt.EndDate)) { if (BTrip.LocationID == bt.LocationID) { return(Json(new { error = btDuplication })); } } if (isBetween(BTrip.StartDate, bt) || isBetween(BTrip.EndDate, bt) || isBetween(bt.StartDate, BTrip) || isBetween(bt.EndDate, BTrip)) { return(Json(new { error = btDatesOverlay })); } } } } if (BTrip.BusinessTripID != 0) { BusinessTrip bsTrip = (from e in repository.Employees where e.EmployeeID == BTrip.EmployeeID from bt in e.BusinessTrips where (BTrip.StartDate == bt.StartDate || BTrip.EndDate == bt.EndDate) //&& BTrip.LocationID == bt.LocationID select bt).FirstOrDefault(); if (bsTrip != null && bsTrip.BusinessTripID != BTrip.BusinessTripID && !bsTrip.Status.HasFlag(BTStatus.Cancelled)) { if (businessTrip.StartDate == businessTrip.EndDate) { if (bsTrip.LocationID == businessTrip.LocationID) { return(Json(new { error = btDuplication })); } } else { if ((businessTrip.StartDate == bsTrip.StartDate && businessTrip.EndDate == bsTrip.EndDate) || bsTrip.LocationID == businessTrip.LocationID) { return(Json(new { error = btDuplication })); } } } foreach (BusinessTrip bt in repository.BusinessTrips.Where(bt => (bt.EmployeeID == BTrip.EmployeeID && bt.BusinessTripID != BTrip.BusinessTripID))) { if (!bt.Status.HasFlag(BTStatus.Cancelled)) { if ((BTrip.StartDate == bt.StartDate) && (BTrip.EndDate == bt.EndDate)) { return(Json(new { error = btDuplication })); } if ((BTrip.EndDate == bt.StartDate) || (BTrip.StartDate == bt.EndDate) || (BTrip.StartDate == bt.StartDate) || (BTrip.EndDate == bt.EndDate)) { if (BTrip.LocationID == bt.LocationID) { return(Json(new { error = btDuplication })); } } if (isBetween(BTrip.StartDate, bt) || isBetween(BTrip.EndDate, bt) || isBetween(bt.StartDate, BTrip) || isBetween(bt.EndDate, BTrip)) { return(Json(new { error = btDatesOverlay })); } } } businessTrip = RewriteBTsPropsAfterPlanningFromRepository(BTrip); businessTrip.RejectComment = null; } if (ModelState.IsValid) { try { AddLastCRUDDataToBT(businessTrip); businessTrip.Location = repository.Locations.Where(l => l.LocationID == businessTrip.LocationID).FirstOrDefault(); businessTrip.Unit = repository.Units.Where(l => l.UnitID == businessTrip.UnitID).FirstOrDefault(); repository.SaveBusinessTrip(businessTrip); } catch (DbUpdateConcurrencyException) { return(Json(new { error = modelError })); } catch (VacationAlreadyExistException) { return(Json(new { error = btCreationError })); } IEnumerable <Employee> empList = SelectEmployees(selectedDepartment, null); return(View("TableViewBTADM", empList.ToList())); } BusinessTripViewModel bTripModel = new BusinessTripViewModel(businessTrip); return(View("Plan", bTripModel)); }