/// <summary> /// Data the formatting and validations. /// </summary> /// <param name="uploadFile">The upload file.</param> /// <param name="presenter">The presenter.</param> /// <returns> /// Import Details for Data provided. /// </returns> private async Task<PortManningPresenter> DataFormattingAndValidations(HttpPostedFileBase uploadFile, PortManningPresenter presenter) { IExcelDataReader excelReader = null; var importedFileData = new ImportDetails(); try { if (uploadFile.FileName.EndsWith(ExcelLatestExtension, StringComparison.OrdinalIgnoreCase)) { excelReader = ExcelReaderFactory.CreateOpenXmlReader(uploadFile.InputStream); } else if (uploadFile.FileName.EndsWith(ExcelNormalExtension, StringComparison.OrdinalIgnoreCase)) { excelReader = ExcelReaderFactory.CreateBinaryReader(uploadFile.InputStream); } if (excelReader != null) { using (var result = excelReader.AsDataSet()) { result.Locale = CultureInfo.CurrentCulture; var importManningDetail = await this.manager.ImportPortManning(result, importedFileData, SessionData.Instance.MasterData.Ship.ShipId, SessionData.Instance.MasterData.CrewDepartments); if (importManningDetail.Items.Count > 0) { presenter.AssignInPortManningList(importManningDetail); } else { presenter.IsImportFailed = true; presenter.ImportException = string.Format(CultureInfo.CurrentCulture, "{0}{1}.", Resource.ShipNameNotCorrect, SessionData.Instance.MasterData.Ship.Name); } excelReader.Close(); } } } catch (Exception ex) { if (!string.IsNullOrEmpty(ex.Message)) { presenter.IsImportFailed = true; presenter.ImportException = Resource.ImportSpreadsheetException; } } finally { if (excelReader != null) { excelReader.Dispose(); } } return presenter; }
/// <summary> /// Indexes this instance. /// </summary> /// <returns> /// The View for Port Manning. /// </returns> public async Task<ActionResult> Index() { var portManningDetail = await this.manager.RetrievePortManningDetail(new SearchFilters { ShipId = SessionData.Instance.MasterData.Ship.ShipId, DepartmentIds = string.Empty, Parts = PartsConstant, MaxResult = ApplicationSettings.MaxPageSize, PageNumber = 1 }); var presenter = new PortManningPresenter(); SessionData.Instance.AssignInPortManningList(portManningDetail); presenter.AssignInPortManningList(portManningDetail); return this.View(presenter); }
/// <summary> /// Assigning the selected port. /// </summary> /// <param name="presenter">The presenter.</param> private static void AssigningSelectedPort(PortManningPresenter presenter) { var voyages = SessionData.Instance.MasterData.Voyages.FirstOrDefault(c => c.VoyageId == presenter.VoyageId); presenter.SelectedPort = voyages != null ? voyages.Itineraries.FirstOrDefault(portItem => portItem.VoyageItineraryId == presenter.VoyageItineraryId) : new Itinerary(); }
public async Task<ActionResult> ImportPortManning(HttpPostedFileBase uploadFile) { var presenter = new PortManningPresenter(); if (uploadFile != null && uploadFile.ContentLength > 0) { presenter = await this.DataFormattingAndValidations(uploadFile, presenter); } return this.View(presenter); }
/// <summary> /// Un-assign crew. /// </summary> /// <param name="safetyPositionId">The safety position identifier.</param> /// <param name="pageNumber">The page number.</param> /// <param name="presenter">The presenter.</param> /// <returns> /// UN assigning Crew /// </returns> public async Task<ActionResult> UnAssignCrew(string safetyPositionId, string pageNumber, PortManningPresenter presenter) { AssigningSelectedPort(presenter); await this.manager.UnAssignCrew(SessionData.Instance.MasterData.Ship.ShipId, safetyPositionId, presenter.SelectedPort.PortId, presenter.SelectedPort.ArrivalTime.HasValue ? presenter.SelectedPort.ArrivalTime.Value.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) : DateTime.Now.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture)); if (!string.IsNullOrEmpty(pageNumber) && !pageNumber.Equals(UndefinedConstant)) { var departments = !string.IsNullOrEmpty(presenter.DepartmentIds) ? presenter.DepartmentIds.Split(',').ToList() : new List<string>(); var pagingPageNumber = Convert.ToInt32(pageNumber) > 0 ? Convert.ToInt32(pageNumber) / ApplicationSettings.MaxPageSize : 1; var portManningDetail = await this.manager.RetrievePortManningDetail(new SearchFilters { ShipId = SessionData.Instance.MasterData.Ship.ShipId, DepartmentIds = departments.Count < SessionData.Instance.MasterData.CrewDepartments.Count ? presenter.DepartmentIds : string.Empty, Parts = PartsConstant, MaxResult = ApplicationSettings.MaxPageSize, PageNumber = pagingPageNumber > 0 ? pagingPageNumber : 1, PortId = presenter.SelectedPort != null ? presenter.SelectedPort.PortId : string.Empty, PortArrivalDate = presenter.SelectedPort != null && presenter.SelectedPort.ArrivalTime.HasValue ? presenter.SelectedPort.ArrivalTime.Value.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) : DateTime.Now.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) }); SessionData.Instance.AssignInPortManningList(portManningDetail); presenter.AssignInPortManningList(portManningDetail); } return this.PartialView(PortManningListPartialView, presenter); }
/// <summary> /// Assigns the crew. /// </summary> /// <param name="crewId">The crew identifier.</param> /// <param name="positionNumber">The position number.</param> /// <param name="pageNumber">The page number.</param> /// <param name="presenter">The presenter.</param> /// <returns> /// The Action Result. /// </returns> public async Task<ActionResult> AssignCrew(string crewId, string positionNumber, string pageNumber, PortManningPresenter presenter) { var portManning = SessionData.Instance.PortManningDetails.Items.FirstOrDefault(pmItem => pmItem.PositionNumber == positionNumber); var portPosition = portManning != null ? portManning.PortManningPosition.FirstOrDefault(ppItem => ppItem.EmployeeNo == crewId) : new PortManningPosition(); AssigningSelectedPort(presenter); await this.manager.AssignCrew(SessionData.Instance.MasterData.Ship.ShipId, presenter.SelectedPort != null ? presenter.SelectedPort.PortId : string.Empty, new PortManning { PortArrivalDate = presenter.SelectedPort != null && presenter.SelectedPort.ArrivalTime.HasValue ? presenter.SelectedPort.ArrivalTime.Value : DateTime.Now, SafetyRoleId = portPosition != null ? portPosition.SafetyRoleId : string.Empty, IPMPositionId = portManning != null ? portManning.IPMPositionId : string.Empty }); if (!string.IsNullOrEmpty(pageNumber) && !pageNumber.Equals(UndefinedConstant)) { var departments = !string.IsNullOrEmpty(presenter.DepartmentIds) ? presenter.DepartmentIds.Split(',').ToList() : null; var pagingPageNumber = Convert.ToInt32(pageNumber) > 0 ? Convert.ToInt32(pageNumber) / ApplicationSettings.MaxPageSize : 1; var portManningDetail = await this.manager.RetrievePortManningDetail(new SearchFilters { ShipId = SessionData.Instance.MasterData.Ship.ShipId, DepartmentIds = departments != null && departments.Count < SessionData.Instance.MasterData.CrewDepartments.Count ? presenter.DepartmentIds : string.Empty, Parts = PartsConstant, MaxResult = ApplicationSettings.MaxPageSize, PageNumber = pagingPageNumber > 0 ? pagingPageNumber : 1, PortId = presenter.SelectedPort != null ? presenter.SelectedPort.PortId : string.Empty, PortArrivalDate = presenter.SelectedPort != null && presenter.SelectedPort.ArrivalTime.HasValue ? presenter.SelectedPort.ArrivalTime.Value.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) : DateTime.Now.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) }); SessionData.Instance.AssignInPortManningList(portManningDetail); presenter.AssignInPortManningList(portManningDetail); } return this.PartialView(PortManningListPartialView, presenter); }
public async Task<ActionResult> Index(PortManningPresenter presenter) { if (presenter != null) { var departments = !string.IsNullOrEmpty(presenter.DepartmentIds) ? presenter.DepartmentIds.Split(',').ToList() : null; AssigningSelectedPort(presenter); var portManningDetail = await this.manager.RetrievePortManningDetail(new SearchFilters { ShipId = SessionData.Instance.MasterData.Ship.ShipId, DepartmentIds = departments != null && departments.Count < SessionData.Instance.MasterData.CrewDepartments.Count ? presenter.DepartmentIds : string.Empty, Parts = PartsConstant, MaxResult = ApplicationSettings.MaxPageSize, PageNumber = 1, PortId = presenter.SelectedPort != null ? presenter.SelectedPort.PortId : string.Empty, PortArrivalDate = presenter.SelectedPort != null && presenter.SelectedPort.ArrivalTime.HasValue ? presenter.SelectedPort.ArrivalTime.Value.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) : DateTime.Now.ToString(ArrivalTimeFormat, CultureInfo.InvariantCulture) }); SessionData.Instance.AssignInPortManningList(portManningDetail); presenter.AssignInPortManningList(portManningDetail); } return this.PartialView(PortManningListPartialView, presenter); }