コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
ファイル: DbMapperMasterdata.cs プロジェクト: antcorpinc/Dew
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        /// <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);
            }
        }
コード例 #9
0
        /// <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);
        }
コード例 #10
0
        public static CancellationPolicy AutomapperCancellationPolicy(CancellationPolicyViewModel viewModel, CancellationPolicy model)
        {
            var modelMapped = AutoMapper.Mapper.Map <CancellationPolicy>(viewModel);

            return(modelMapped);
        }
コード例 #11
0
        /// <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);
        }
コード例 #12
0
        /// <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);
            }
        }