/// <summary> /// Indexes the specified model. /// </summary> /// <returns>DataTable Pagging</returns> /// <param name="dealType">Deal Type</param> public IActionResult Index(int?dealType) { CancellationPolicyViewModel model = new CancellationPolicyViewModel { Id = 0, DealType = dealType != null && dealType != 0 ? dealType : 0 }; return(this.View(model)); }
/// <summary> /// Indexes the specified model. /// </summary> /// <returns>DataTable Pagging</returns> /// <param name="dealType">Deal Type</param> public async Task <IActionResult> AddCancellationPolicyRow(int dealType) { CancellationPolicyViewModel model = new CancellationPolicyViewModel { Id = 0, IsDeleted = false, DealType = dealType, MarginTypeItems = (await this.cancellationService.GetMarginTypeItems()).ToSelectList() }; this.ViewBag.DealType = dealType; return(this.PartialView("_CancellationPolicyRow", model)); }
/// <summary> /// AutomapperCancellationPolicy /// </summary> /// <param name="viewModel"></param> /// <returns></returns> public static CancellationPolicy AutomapperCancellationPolicy(CancellationPolicyViewModel viewModel) { var modelMapped = AutoMapper.Mapper.Map <CancellationPolicy>(viewModel); if (viewModel.CancellationPolicyClausesViewModelList != null) { modelMapped.CancellationChargesId = viewModel.CancellationPolicyClausesViewModelList.CancellationClauseChargeId; } if (modelMapped.CancellationChargesId == 0) { modelMapped.CancellationChargesId = null; } return(modelMapped); }
/// <summary> /// Get Cancellation Policies by hotel id /// </summary> /// <param name="hotelId"></param> /// <returns>list of cancellation policy</returns> public BaseResult <List <CancellationPolicyViewModel> > GetCancellationPolicies(int hotelId) { var policies = this.iCancellationPolicyConnectionLibrary.GetListByPredicate(p => p.HotelId == hotelId && p.IsDeleted == false).Result; var cancellationPolicyTypes = this.iCancellationPolicyTypeConnectionLibrary.GetListByPredicate(p => p.IsActive == true && p.IsDeleted == false); var cancellationCharges = this.iCancellationChargesConnectionLibrary.GetListByPredicate(p => p.IsActive == true && p.IsDeleted == false); var modelList = new BaseResult <List <CancellationPolicyViewModel> > { Result = new List <CancellationPolicyViewModel>() }; Func <int?, string> GetCancellationChargesName = (id) => cancellationCharges.Result.Result.Where(p => p.Id == id).FirstOrDefault().Name; Func <int, string> GetCancellationPolicyTypeName = (id) => cancellationPolicyTypes.Result.Result.Where(p => p.Id == id).FirstOrDefault().Name; foreach (var item in policies.Result) { var model = new CancellationPolicyViewModel() { CancellationPolicyId = item.Id, HotelId = item.HotelId, CancellationPolicyTypeId = item.CancellationPolicyTypeId, CancellationPolicyTypeName = GetCancellationPolicyTypeName(item.CancellationPolicyTypeId), IsNoShowCharges = item.IsNoShowCharges, NoShowCancellationChargesId = item.NoShowCancellationChargesId, CancellationChargesName = (item.NoShowCancellationChargesId != null) ? GetCancellationChargesName(item.NoShowCancellationChargesId) : String.Empty, Name = item.Name, IsActive = item.IsActive, CancellationPolicyClausesViewModelList = new CancellationPolicyClausesViewModel(), }; model.CancellationPolicyClausesViewModelList.CancellationClauseChargeId = item.CancellationChargesId; var policyClauses = this.iCancellationPolicyClausesConnectionLibrary.GetListByPredicate(p => p.CancellationPolicyId == item.Id && p.IsDeleted == false).Result; model.CancellationPolicyClausesViewModelList.PolicyClausesList = new List <CancellationClauseViewModel>(); foreach (var clause in policyClauses.Result) { var clauseModel = new CancellationClauseViewModel() { CancellationPolicyClausesId = clause.Id, CancellationPolicyId = clause.CancellationPolicyId, DaysBeforeArrival = clause.DaysBeforeArrival, PercentageCharge = clause.PercentageCharge }; model.CancellationPolicyClausesViewModelList.PolicyClausesList.Add(clauseModel); } modelList.Result.Add(model); } return(modelList); }
public static BaseResult <List <CancellationPolicyViewModel> > MapCancellationPolicy(BaseResult <List <CancellationPolicyViewModel> > chargesResult) { BaseResult <List <CancellationPolicyViewModel> > policyViewModelList = new BaseResult <List <CancellationPolicyViewModel> >(); List <CancellationPolicyViewModel> modelList = new List <CancellationPolicyViewModel>(); foreach (var item in chargesResult.Result) { CancellationPolicyViewModel model = new CancellationPolicyViewModel { CancellationPolicyId = item.CancellationPolicyId, Name = item.Name }; modelList.Add(model); } policyViewModelList.Result = modelList; return(policyViewModelList); }
public async Task <IActionResult> SaveAndUpdateCancellationPolicy([FromBody] CancellationPolicyViewModel cancellationPolicyViewModel) { if (cancellationPolicyViewModel == null || cancellationPolicyViewModel.HotelId == 0) { return(BadRequest()); } var LoggedInUserName = this.LoggedInUserName; var updateResponse = await iPolicies.SaveAndUpdateCancellationPolicy(cancellationPolicyViewModel, base.LoggedInUserId).ConfigureAwait(false); if (updateResponse.IsError && updateResponse.ExceptionMessage != null) { return(new StatusCodeResult(500)); } else if (updateResponse.Message != null) { return(BadRequest(updateResponse)); } return(Ok(updateResponse)); //200 }
/// <summary> /// Create Cancellation Policy /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <returns>returns the Id of the newly created cancellation policy</returns> private async Task <BaseResult <CancellationPolicy> > CreateCancellationPolicy(CancellationPolicyViewModel cancellationPolicyViewModel) { BaseResult <CancellationPolicy> result = new BaseResult <CancellationPolicy>(); result.Result = new CancellationPolicy(); CancellationPolicy cancellationPolicy = new CancellationPolicy() { HotelId = cancellationPolicyViewModel.HotelId, CancellationPolicyTypeId = cancellationPolicyViewModel.CancellationPolicyTypeId, NoShowCancellationChargesId = cancellationPolicyViewModel.NoShowCancellationChargesId, IsNoShowCharges = cancellationPolicyViewModel.IsNoShowCharges, IsActive = cancellationPolicyViewModel.IsActive, IsDeleted = cancellationPolicyViewModel.IsDeleted, Name = cancellationPolicyViewModel.Name }; var insertResult = await this.iCancellationPolicyConnectionLibrary.InsertEntity(cancellationPolicy).ConfigureAwait(false); if (insertResult.IsError || insertResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = insertResult.ExceptionMessage; return(result); } if (insertResult == null) { result = null; } result.Result.Id = (int)insertResult.Result; return(result); }
/// <summary> /// Updates Cancellation Policy /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <returns>updated cancellation policy id</returns> private async Task <BaseResult <CancellationPolicy> > UpdateCancellationPolicy(CancellationPolicyViewModel cancellationPolicyViewModel) { var result = new BaseResult <CancellationPolicy>(); result.Result = new CancellationPolicy(); if (cancellationPolicyViewModel.ObjectState == ObjectState.Modified) { var cancellationPolicyDbList = await this.iCancellationPolicyConnectionLibrary.GetListByPredicate(p => p.HotelId == cancellationPolicyViewModel.HotelId && p.IsDeleted == false).ConfigureAwait(false); var cancellationPolicyDb = cancellationPolicyDbList.Result.FirstOrDefault(p => p.Id == cancellationPolicyViewModel.CancellationPolicyId); if (cancellationPolicyDb != null) { var cancellationPolicy = DbMapperMasterdata.AutomapperCancellationPolicy(cancellationPolicyViewModel, cancellationPolicyDb); if (cancellationPolicy.CancellationPolicyTypeId != cancellationPolicyDb.CancellationPolicyTypeId && cancellationPolicyDb.CancellationPolicyTypeId == 2) { var clausesList = await iCancellationPolicyClausesConnectionLibrary .GetListByPredicate(p => p.CancellationPolicyId == cancellationPolicyDb.Id && p.IsDeleted == false) .ConfigureAwait(false); foreach (var item in clausesList.Result) { item.IsDeleted = true; } await iCancellationPolicyClausesConnectionLibrary.UpdateEntityList(clausesList.Result) .ConfigureAwait(false); } var updateResult = await iCancellationPolicyConnectionLibrary.UpdateEntityByDapper(cancellationPolicy).ConfigureAwait(false); if (updateResult.IsError || updateResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = updateResult.ExceptionMessage; return(result); } if (updateResult == null) { result = null; } return(result); } else { return(result); } } else { return(result); } }
/// <summary> /// Save And Update CancellationPolicy /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <param name="loggedUserName"></param> /// <returns></returns> public async Task <BaseResult <CancellationPolicy> > SaveAndUpdateCancellationPolicy(CancellationPolicyViewModel cancellationPolicyViewModel, string loggedUserName) { var result = new BaseResult <CancellationPolicy> { Result = new CancellationPolicy() }; int policyId = cancellationPolicyViewModel.CancellationPolicyId; if (cancellationPolicyViewModel != null && cancellationPolicyViewModel.ObjectState == ObjectState.Added) { result = await this.CreateCancellationPolicy(cancellationPolicyViewModel).ConfigureAwait(false); policyId = result.Result.Id; cancellationPolicyViewModel.CancellationPolicyId = result.Result.Id; if (cancellationPolicyViewModel.CancellationPolicyClausesViewModelList.Count > 0) { foreach (var item in cancellationPolicyViewModel.CancellationPolicyClausesViewModelList) { item.CancellationPolicyId = policyId; await this.CreateCancellationPolicyClauses(item).ConfigureAwait(false); } } } if (cancellationPolicyViewModel != null && cancellationPolicyViewModel.ObjectState == ObjectState.Modified) { var updateCancellationPolicyResult = await this.UpdateCancellationPolicy(cancellationPolicyViewModel).ConfigureAwait(false); } if (cancellationPolicyViewModel != null && cancellationPolicyViewModel.CancellationPolicyClausesViewModelList.Count >= 1 && cancellationPolicyViewModel.ObjectState == ObjectState.Modified) { foreach (var item in cancellationPolicyViewModel.CancellationPolicyClausesViewModelList) { if (item.ObjectState == ObjectState.Modified || item.ObjectState == ObjectState.Added) { item.CancellationPolicyId = policyId; var updateCancellationPolicyClauseResult = await this.UpdateCancellationClauses(item).ConfigureAwait(false); } } } return(result); }
public static CancellationPolicy AutomapperCancellationPolicy(CancellationPolicyViewModel viewModel, CancellationPolicy model) { var modelMapped = AutoMapper.Mapper.Map <CancellationPolicy>(viewModel); return(modelMapped); }
/// <summary> /// Create Cancellation Policy /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <returns>returns the Id of the newly created cancellation policy</returns> private async Task <BaseResult <CancellationPolicy> > CreateCancellationPolicy(CancellationPolicyViewModel cancellationPolicyViewModel) { var result = new BaseResult <CancellationPolicy>(); result.Result = new CancellationPolicy(); var policy = DbMapperMasterdata.AutomapperCancellationPolicy(cancellationPolicyViewModel); var insertResult = await this.iCancellationPolicyConnectionLibrary.InsertEntity(policy).ConfigureAwait(false); if (insertResult.IsError || insertResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = insertResult.ExceptionMessage; return(result); } if (insertResult == null) { result = null; } result.Result.Id = (int)insertResult.Result; return(result); }
/// <summary> /// Validates cancellation policy clauses /// </summary> /// <param name="cancellationPolicyClause"></param> /// <returns>returns results based on validation</returns> //private bool ValidatePolicyClause(CancellationPolicyClauses cancellationPolicyClause) //{ // int cancellationChrgesId = cancellationPolicyClause.CancellationChargesId; // var list = iCancellationPolicyClausesConnectionLibrary.GetListByPredicate(p => p.CancellationPolicyId == cancellationPolicyClause.CancellationPolicyId && p.CancellationChargesId == cancellationChrgesId).Result.Result; // int daysBeforeArrival = cancellationPolicyClause.DaysBeforeArrival; // decimal percentage = cancellationPolicyClause.PercentageCharge; // List<CancellationPolicyClauses> clist = list.OrderBy(p => p.DaysBeforeArrival).ToList(); // CancellationPolicyClauses c1 = null, c2 = null; // foreach (var item in clist) // { // if (daysBeforeArrival > item.DaysBeforeArrival) // { // c1 = item; // continue; // } // else // { // c2 = item; // break; // } // } // if (c1 != null && c2 != null) // { // if (c1.PercentageCharge > percentage && percentage > c2.PercentageCharge) // { // return true; // } // else return false; // } // else if (c1 == null) // { // if (c2.PercentageCharge < percentage) // return true; // else return false; // } // else if (c2 == null) // { // if (c1.PercentageCharge > percentage) // return true; // else return false; // } // else // { // return false; // } //} /// <summary> /// Updates Cancellation Policy /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <returns>updated cancellation policy id</returns> private async Task <BaseResult <CancellationPolicy> > UpdateCancellationPolicy(CancellationPolicyViewModel cancellationPolicyViewModel) { var result = new BaseResult <CancellationPolicy>(); result.Result = new CancellationPolicy(); if (cancellationPolicyViewModel.ObjectState == ObjectState.Modified) { var cancellationPolicyDb = this.iCancellationPolicyConnectionLibrary.GetListByPredicate(p => p.Id == cancellationPolicyViewModel.CancellationPolicyId && p.HotelId == cancellationPolicyViewModel.HotelId && p.IsDeleted == false).Result.Result.FirstOrDefault(); /// for deleting clauses in case it is changed from general/nrf to flexible if (cancellationPolicyDb.CancellationPolicyTypeId == 2 && cancellationPolicyViewModel.CancellationPolicyTypeId != 2) { var list = new List <CancellationPolicyClauses>(); var clauses = this.iCancellationPolicyClausesConnectionLibrary.GetListByPredicate(p => p.CancellationPolicyId == cancellationPolicyDb.Id && p.IsDeleted == false); foreach (var item in clauses.Result.Result) { item.IsDeleted = true; list.Add(item); } await this.iCancellationPolicyClausesConnectionLibrary.UpdateEntityList(list).ConfigureAwait(false); } /// for saving main cancellation entity if (cancellationPolicyDb != null) { Func <int, int?> GetchargeId = (id) => (cancellationPolicyViewModel.CancellationPolicyTypeId == (int)Enums.CancellationPolicyTypeEnumConstant.Flexible) ? cancellationPolicyViewModel.CancellationPolicyClausesViewModelList.CancellationClauseChargeId : null; var cancellationPolicy = new CancellationPolicy() { Id = cancellationPolicyDb.Id, CancellationChargesId = GetchargeId(cancellationPolicyDb.CancellationPolicyTypeId), CancellationPolicyTypeId = cancellationPolicyViewModel.CancellationPolicyTypeId, HotelId = cancellationPolicyDb.HotelId, IsActive = cancellationPolicyViewModel.IsActive, IsDeleted = cancellationPolicyViewModel.IsDeleted, IsNoShowCharges = cancellationPolicyViewModel.IsNoShowCharges, Name = cancellationPolicyViewModel.Name, NoShowCancellationChargesId = cancellationPolicyViewModel.NoShowCancellationChargesId }; var updateResult = await iCancellationPolicyConnectionLibrary.UpdateEntityByDapper(cancellationPolicy).ConfigureAwait(false); if (updateResult.IsError || updateResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = updateResult.ExceptionMessage; return(result); } if (updateResult == null) { result = null; } return(result); } else { return(result); } } else { return(result); } }