/// <summary> /// AutomapperCancellationPolicyClause /// </summary> /// <param name="viewModel"></param> /// <param name="model"></param> /// <param name="loggedUser"></param> /// <returns>CancellationPolicyClauses</returns> public static CancellationPolicyClauses AutomapperCancellationPolicyClause(CancellationClauseViewModel viewModel, CancellationPolicyClauses model, string loggedUser) { var modelMapped = AutoMapper.Mapper.Map <CancellationPolicyClauses>(viewModel); modelMapped.CancellationPolicyId = viewModel.CancellationPolicyId; modelMapped.IsDeleted = false; ResolveRemainingParamters(modelMapped, model, loggedUser); 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); }
/// <summary> /// Create CancellationPolicyClauses /// </summary> /// <param name="clauseViewModel"></param> /// <returns>returns the cancellation policy clauses id</returns> private async Task <BaseResult <CancellationPolicy> > CreateCancellationPolicyClauses(CancellationClauseViewModel clauseViewModel, string loggedUser) { var result = new BaseResult <CancellationPolicy> { Result = new CancellationPolicy() }; var clauseModel = DbMapperMasterdata.AutomapperCancellationPolicyClause(clauseViewModel, null, loggedUser); clauseModel.CancellationPolicyId = clauseViewModel.CancellationPolicyId; clauseModel.IsDeleted = false; ////this.ValidatePolicyClause(cancellationPolicyClauses); var insertResult = await this.iCancellationPolicyClausesConnectionLibrary.InsertEntity(clauseModel).ConfigureAwait(false); if (insertResult.IsError || insertResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = insertResult.ExceptionMessage; return(result); } result.Result.Id = (int)insertResult.Result; return(result); }
/// <summary> /// Updates CancellationClauses /// </summary> /// <param name="cancellationPolicyViewModel"></param> /// <returns></returns> private async Task <BaseResult <CancellationPolicy> > UpdateCancellationClauses(CancellationClauseViewModel clauseViewModel, string loggedUser) { var result = new BaseResult <CancellationPolicy>(); result.Result = new CancellationPolicy(); var updateResult = new BaseResult <bool>(); var clauseDb = this.iCancellationPolicyClausesConnectionLibrary.GetListByPredicate(p => p.Id == clauseViewModel.CancellationPolicyClausesId).Result.Result.FirstOrDefault(); if (clauseViewModel.ObjectState == ObjectState.Modified) { var updatedModel = DbMapperMasterdata.AutomapperCancellationPolicyClause(clauseViewModel, clauseDb, loggedUser); ////this.ValidatePolicyClause(updatedModel); updateResult = await iCancellationPolicyClausesConnectionLibrary.UpdateEntityByDapper(updatedModel).ConfigureAwait(false); } if (clauseViewModel.ObjectState == ObjectState.Added) { return(await CreateCancellationPolicyClauses(clauseViewModel, loggedUser).ConfigureAwait(false)); } if (updateResult.IsError || updateResult.ExceptionMessage != null) { result.IsError = true; result.ExceptionMessage = updateResult.ExceptionMessage; return(result); } if (updateResult.Result == true) { result.Result.Id = clauseViewModel.CancellationPolicyId; } return(result); }