示例#1
0
        public static ContractHotelViewModel AutoMapperContractHotelViewModel(
            ContractStaticViewModel contractStaticViewModel)
        {
            var mapped = AutoMapper.Mapper.Map <ContractHotelViewModel>(contractStaticViewModel);

            return(mapped);
        }
示例#2
0
        public async Task <IActionResult> CreateStaticContract([FromBody] ContractStaticViewModel contractStaticViewModel)
        {
            BaseResult <ContractStaticViewModel> insertResult = null;

            try
            {
                if (contractStaticViewModel.HotelDetailsViewModel.HotelId == 0)
                {
                    return(this.BadRequest(contractStaticViewModel));
                }
                insertResult = await this._icontractsStatic.CreateContract(contractStaticViewModel, this.LoggedInUserName).ConfigureAwait(false);

                if (insertResult.IsError && insertResult.ExceptionMessage != null)
                {
                    return(StatusCode(500, insertResult));
                }
                else if (insertResult.Result == null)
                {
                    return(this.NoContent()); // 204
                }

                return(this.Ok(insertResult));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex));
            }
        }
示例#3
0
        /// <summary>
        /// AutomapperContract
        /// </summary>
        /// <param name="viewModel"></param>
        /// <param name="model"></param>
        /// <param name="loggedUserName"></param>
        /// <param name="objectState"></param>
        /// <returns></returns>
        public static Contract AutomapperContract(ContractStaticViewModel viewModel, Contract model, string loggedUserName, ObjectState?objectState)
        {
            var modelMapped = AutoMapper.Mapper.Map <Contract>(viewModel);

            ResolveRemainingParamters(modelMapped, model, loggedUserName, objectState);
            return(modelMapped);
        }
示例#4
0
        /// <summary>
        /// ResolveRemainingParamters
        /// </summary>
        /// <param name="destination"></param>
        /// <param name="source"></param>
        /// <param name="model"></param>
        /// <param name="hotel"></param>
        /// <param name="loggedUser"></param>
        public static void ResolveRemainingParamters(ContractHotel destination, ContractStaticViewModel source, ContractHotel model, Hotel hotel, string loggedUser, ObjectState?objectState)
        {
            destination.ContractId             = source.ContractId;
            destination.Id                     = model.Id;
            destination.Code                   = source.HotelDetailsViewModel.HotelCode;
            destination.Name                   = source.HotelDetailsViewModel.HotelName;
            destination.NameItemId             = hotel.NameItemId;
            destination.ShortDescriptionItemId = hotel.ShortDescriptionItemId;

            if (objectState == ObjectState.Added)
            {
                destination.CreatedBy   = loggedUser;
                destination.UpdatedBy   = loggedUser;
                destination.CreatedDate = DateTime.Now.JakartaOffset();
                destination.UpdatedDate = DateTime.Now.JakartaOffset();
            }
            if (objectState == ObjectState.Modified)
            {
                if (destination.IsChannelManagerConnectivity == false || destination.ChannelManagerId == 0)
                {
                    destination.ChannelManagerId = null;
                }
                destination.CreatedBy   = model.CreatedBy;
                destination.UpdatedBy   = loggedUser;
                destination.CreatedDate = model.CreatedDate;
                destination.UpdatedDate = DateTime.Now.JakartaOffset();
            }
        }
示例#5
0
        /// <summary>
        /// AutomapperContractHotel
        /// </summary>
        /// <param name="source"></param>
        /// <param name="model"></param>
        /// <param name="hotel"></param>
        /// <param name="loggedUser"></param>
        /// <returns></returns>
        public static ContractHotel AutomapperContractHotel(ContractStaticViewModel source, ContractHotel model, Hotel hotel, string loggedUser, ObjectState?objectState)
        {
            var mappedModel = AutoMapper.Mapper.Map <ContractHotel>(source.HotelDetailsViewModel);

            ResolveRemainingParamters(mappedModel, source, model, hotel, loggedUser, objectState);
            return(mappedModel);
        }
示例#6
0
        /// <summary>
        /// CreateContractTelephoneReservation
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<long>></returns>
        private async Task <BaseResult <long> > CreateContractTelephoneReservation(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            BaseResult <long> result = new BaseResult <long>();
            var contractEmails       = contractStaticViewModel.HotelDetailsViewModel.ReservationContactNo.Split(',');

            var list = new List <ContractTelephoneReservation>();

            foreach (var item in contractEmails)
            {
                var model = new ContractTelephoneReservation()
                {
                    ContractId  = contractStaticViewModel.ContractId,
                    Telephone   = item,
                    HotelId     = contractStaticViewModel.HotelDetailsViewModel.HotelId,
                    IsDeleted   = false,
                    CreatedBy   = loggedUser,
                    CreatedDate = DateTime.Now.JakartaOffset(),
                    UpdatedBy   = loggedUser,
                    UpdatedDate = DateTime.Now.JakartaOffset()
                };
                list.Add(model);
            }

            result = await this.iContractTelephoneReservation.InsertEntityList(list).ConfigureAwait(false);

            return(result);
        }
示例#7
0
        /// <summary>
        /// SaveContractTelephoneReservation
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<long>></returns>
        private async Task <BaseResult <long> > SaveContractTelephoneReservation(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            BaseResult <long> result = new BaseResult <long>();

            if (contractStaticViewModel.HotelDetailsViewModel.ObjectState == ObjectState.Added)
            {
                result = await CreateContractTelephoneReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);

                return(result);
            }
            if (contractStaticViewModel.HotelDetailsViewModel.ObjectState == ObjectState.Modified)
            {
                var listDb = await this.iContractTelephoneReservation.GetListByPredicate(p => p.HotelId == contractStaticViewModel.HotelDetailsViewModel.HotelId && p.ContractId == contractStaticViewModel.ContractId).ConfigureAwait(false);

                var contractEmails = contractStaticViewModel.HotelDetailsViewModel.ReservationContactNo.Split(',');
                var list           = new List <ContractTelephoneReservation>();

                foreach (var item in listDb.Result)
                {
                    item.IsDeleted   = true;
                    item.UpdatedBy   = loggedUser;
                    item.UpdatedDate = DateTime.Now.JakartaOffset();
                    var model = new ContractTelephoneReservation()
                    {
                        IsDeleted   = true,
                        UpdatedBy   = loggedUser,
                        UpdatedDate = DateTime.Now.JakartaOffset()
                    };
                    list.Add(model);
                }
                await this.iContractTelephoneReservation.UpdateEntityList(listDb.Result).ConfigureAwait(false);
                await CreateContractTelephoneReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);
            }
            return(result);
        }
示例#8
0
        /// <summary>
        /// The save contract hotel.
        /// </summary>
        /// <param name="contractStaticViewModel">
        /// The contract static view model.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        private async Task <BaseResult <ContractHotel> > SaveContractHotel(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var result = new BaseResult <ContractHotel>();

            var contractHotelViewModel = new ContractHotelViewModel
            {
                HotelDetailsViewModel =
                    contractStaticViewModel
                    .HotelDetailsViewModel,
                ContractId = contractStaticViewModel.ContractId
            };

            var mappedModel = DbMapperMasterdata.AutomapperContractHotel(contractHotelViewModel.HotelDetailsViewModel, loggedUser);

            mappedModel.ContractId = contractStaticViewModel.ContractId;
            var u = this.iHotel.GetEntity(mappedModel.HotelId).Result.Result;

            mappedModel.NameItemId             = u.NameItemId;
            mappedModel.ShortDescriptionItemId = u.ShortDescriptionItemId;

            var insertResult = await this.iContractHotel.InsertEntity(mappedModel).ConfigureAwait(false);

            if (insertResult.IsError && insertResult.ExceptionMessage != null)
            {
                result.IsError          = insertResult.IsError;
                result.ExceptionMessage = insertResult.ExceptionMessage;
            }

            return(result);
        }
示例#9
0
        /// <summary>
        /// SaveContractHotelTax
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<long>></returns>
        private async Task <BaseResult <long> > SaveContractHotelTax(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var result = new BaseResult <long>();
            var contractHotelTaxList = new List <ContractHotelTaxRelation>();

            foreach (var item in contractStaticViewModel.HotelDetailsViewModel.TaxDetails)
            {
                if (item.ObjectState == ObjectState.Added)
                {
                    var model       = new ContractHotelTaxRelation();
                    var mappedmodel = DbMapperMasterdata.AutomapperContractHotelTaxRelation(item, model, contractStaticViewModel, loggedUser, contractStaticViewModel.ObjectState);
                    contractHotelTaxList.Add(mappedmodel);
                }
                if (item.ObjectState == ObjectState.Modified)
                {
                    var param = new DynamicParameters();
                    param.Add(Constants.StoredProcedureParameters.ContractId, contractStaticViewModel.ContractId);
                    param.Add(Constants.StoredProcedureParameters.HotelId, contractStaticViewModel.HotelDetailsViewModel.HotelId);
                    param.Add(Constants.StoredProcedureParameters.TaxTypeId, item.TaxTypeId);
                    param.Add(Constants.StoredProcedureParameters.TaxApplicabilityId, item.TaxApplicabilityId);
                    param.Add(Constants.StoredProcedureParameters.Amount, item.Amount);
                    param.Add(Constants.StoredProcedureParameters.IsIncludedInRates, item.IsIncludedInRates);
                    param.Add(Constants.StoredProcedureParameters.IsDeleted, item.IsDeleted);
                    await iContractHotelTaxRelation.ExecuteStoredProcedureDynamicModel(Constants.StoredProcedure.UpdateContractHotelTaxRelation, param).ConfigureAwait(false);
                }
            }
            if (contractHotelTaxList != null && contractHotelTaxList.Count > 0)
            {
                result = await this.iContractHotelTaxRelation.InsertEntityList(contractHotelTaxList).ConfigureAwait(false);
            }
            return(result);
        }
示例#10
0
        /// <summary>
        /// SaveContractContact
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<long>></returns>
        private async Task <BaseResult <long> > SaveContractContact(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var insertList = new List <ContractContact>();
            var updateList = new List <ContractContact>();
            var result     = new BaseResult <long>();

            foreach (var item in contractStaticViewModel.HotelDetailsViewModel.ContactDetails)
            {
                if (item.ObjectState == ObjectState.Added)
                {
                    item.HotelId = contractStaticViewModel.HotelDetailsViewModel.HotelId;
                    var contractContactViewModel = DbMapperMasterdata.AutomapperContractContactViewModel(item);
                    var contractContactModel     = DbMapperMasterdata.AutomapperContractContact(contractContactViewModel, loggedUser);
                    contractContactModel.ContractId = contractStaticViewModel.ContractId;
                    insertList.Add(contractContactModel);
                }

                if (item.ObjectState == ObjectState.Modified)
                {
                    item.HotelId = contractStaticViewModel.HotelDetailsViewModel.HotelId;
                    var contractContactViewModel = DbMapperMasterdata.AutomapperContractContactViewModel(item);
                    var contractContactModel     = DbMapperMasterdata.AutomapperContractContact(contractContactViewModel, loggedUser);
                    contractContactModel.ContractId = contractStaticViewModel.ContractId;
                    updateList.Add(contractContactModel);
                }
            }

            if (insertList.Count > 0)
            {
                result = await iContractContact.InsertEntityList(insertList).ConfigureAwait(false);

                if (result != null && result.Result > 0)
                {
                    result.Result = contractStaticViewModel.ContractId;
                }
                else
                {
                    result.IsError = true;
                }
            }
            if (updateList.Count > 0)
            {
                var updateResult = await iContractContact.UpdateEntityList(updateList).ConfigureAwait(false);

                if (updateResult.Result)
                {
                    result.Result = contractStaticViewModel.ContractId;
                }
                else
                {
                    result.IsError = true;
                }
            }
            return(result);
        }
示例#11
0
        public static Contract AutomapperContract(ContractStaticViewModel viewModel, Contract model, string loggedUserName)
        {
            var modelMapped = AutoMapper.Mapper.Map <Contract>(viewModel);

            modelMapped.CreatedBy   = loggedUserName;
            modelMapped.UpdatedBy   = loggedUserName;
            modelMapped.CreatedDate = DateTime.Now.JakartaOffset();
            modelMapped.UpdatedDate = DateTime.Now.JakartaOffset();
            ResolveRemainingParamters(modelMapped, model);
            return(modelMapped);
        }
示例#12
0
        public async Task <IActionResult> CreateStaticContract([FromBody] ContractStaticViewModel contractStaticViewModel)
        {
            var insertResult = await this._icontractsStatic.CreateContract(contractStaticViewModel, this.LoggedInUserName).ConfigureAwait(false);

            if (insertResult.IsError && insertResult.ExceptionMessage != null)
            {
                return(new StatusCodeResult(500));
            }
            else if (insertResult.Result == null)
            {
                return(this.NoContent()); // 204
            }

            return(this.Ok(insertResult));
        }
示例#13
0
        private async Task <BaseResult <long> > SaveContractHotelTax(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var result = new BaseResult <long>();
            var contractHotelTaxList = new List <ContractHotelTaxRelation>();

            foreach (var item in contractStaticViewModel.HotelDetailsViewModel.TaxDetails)
            {
                var mappedViewModel = AutoMapper.Mapper.Map <ContractHotelTaxRelationViewModel>(item);
                var mappedmodel     = DbMapperMasterdata.AutomapperContractHotelTaxRelation(mappedViewModel, loggedUser);
                mappedmodel.HotelId    = contractStaticViewModel.HotelDetailsViewModel.HotelId;
                mappedmodel.ContractId = contractStaticViewModel.ContractId;
                contractHotelTaxList.Add(mappedmodel);
                result = await this.iContractHotelTaxRelation.InsertEntity(mappedmodel).ConfigureAwait(false);
            }

            //var result = await this.iContractHotelTaxRelation.InsertEntityList(contractHotelTaxList).ConfigureAwait(false);
            return(result);
        }
示例#14
0
        private async Task <BaseResult <long> > SaveContractContact(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var contractContactList = new List <ContractContact>();

            foreach (var item in contractStaticViewModel.HotelDetailsViewModel.ContactDetails)
            {
                if (item.ObjectState == ObjectState.Added)
                {
                    item.HotelId = contractStaticViewModel.HotelDetailsViewModel.HotelId;
                    var contractContactViewModel = DbMapperMasterdata.AutomapperContractContactViewModel(item);
                    var contractContactModel     = DbMapperMasterdata.AutomapperContractContact(contractContactViewModel, loggedUser);
                    contractContactModel.Contractid = contractStaticViewModel.ContractId;
                    contractContactList.Add(contractContactModel);
                }
            }

            var result = await iContractContact.InsertEntityList(contractContactList).ConfigureAwait(false);

            return(result);
        }
示例#15
0
        /// <summary>
        /// The create contract.
        /// </summary>
        /// <param name="contractStaticViewModel">
        ///     The contract view model.
        /// </param>
        /// <param name="loggedUser">Logged in user name</param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task <BaseResult <ContractViewModel> > CreateContract(
            ContractStaticViewModel contractStaticViewModel,
            string loggedUser)
        {
            var result = new BaseResult <ContractViewModel>();

            var contract = new Contract();

            contract = DbMapperMasterdata.AutomapperContract(contractStaticViewModel, contract, loggedUser);

            contract.StatusID = 1;

            var insertResult = await this.iContract.InsertEntity(contract).ConfigureAwait(false);

            contractStaticViewModel.ContractId = (int)insertResult.Result;

            var insertResultHotelFields = await this.InsertTemplateFieldsToContractFieldsHotel(contractStaticViewModel)
                                          .ConfigureAwait(false);

            var insertResultRoomFields = await this.InsertTemplateFieldsToContractFieldsRoom(contractStaticViewModel)
                                         .ConfigureAwait(false);

            await this.SaveContractHotel(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            await this.SaveContractContact(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            //await this.SaveContractHotelTax(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            if (insertResult.IsError && insertResult.ExceptionMessage != null)
            {
                result.IsError          = insertResult.IsError;
                result.ExceptionMessage = insertResult.ExceptionMessage;
            }

            result.Result.Id = (int)insertResult.Result;
            return(result);
        }
示例#16
0
        /// <summary>
        /// SaveContractPaymentMethod
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <returns>Task<BaseResult<long>></returns>
        private async Task <BaseResult <long> > SaveContractPaymentMethod(ContractStaticViewModel contractStaticViewModel)
        {
            BaseResult <long> result = new BaseResult <long>();

            if (contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.ObjectState == ObjectState.Added)
            {
                var model = new ContractHotelPaymentMethodRelation()
                {
                    ContractId      = contractStaticViewModel.ContractId,
                    CurrencyId      = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.CurrencyId,
                    HotelId         = contractStaticViewModel.HotelDetailsViewModel.HotelId,
                    IsDeleted       = false,
                    PaymentMethodId = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.PaymentMethodId,
                    RateTypeId      = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.RateTypeId
                };

                result = await this.iContractHotelPaymentMethodRelation.InsertEntity(model).ConfigureAwait(false);

                return(result);
            }
            else if (contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.ObjectState == ObjectState.Modified)
            {
                var model = new ContractHotelPaymentMethodRelation()
                {
                    Id              = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.HotelPaymentMethodRelationId,
                    ContractId      = contractStaticViewModel.ContractId,
                    CurrencyId      = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.CurrencyId,
                    HotelId         = contractStaticViewModel.HotelDetailsViewModel.HotelId,
                    IsDeleted       = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.IsDeleted,
                    PaymentMethodId = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.PaymentMethodId,
                    RateTypeId      = contractStaticViewModel.HotelDetailsViewModel.HotelPaymentMethodRelation.RateTypeId
                };
                await this.iContractHotelPaymentMethodRelation.UpdateEntityByDapper(model).ConfigureAwait(false);
            }
            return(result);
        }
示例#17
0
        /// <summary>
        /// The save contract template fields.
        /// </summary>
        /// <param name="contractViewModel">
        /// The contract view model.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        private async Task <BaseResult <long> > InsertTemplateFieldsToContractFieldsRoom(ContractStaticViewModel contractViewModel)
        {
            var roomFields = await this.iTemplateRoomProperties
                             .GetListByPredicate(
                p => p.IsSelected == true && p.TemplateId == contractViewModel.TemplateId)
                             .ConfigureAwait(false);

            var insertList = new List <ContractRoomProperties>();

            foreach (var item in roomFields.Result)
            {
                var entity = new ContractRoomProperties
                {
                    ContractId  = contractViewModel.ContractId,
                    IsDeleted   = item.IsDeleted,
                    FieldId     = item.FieldId,
                    UpdatedBy   = "sa",
                    UpdatedDate = DateTime.Now,
                    CreatedBy   = "sa",
                    CreatedDate = DateTime.Now
                };
                insertList.Add(entity);
            }

            var insertResult = await this.iContractRoomProperties.InsertEntityList(insertList).ConfigureAwait(false);

            return(insertResult);
        }
示例#18
0
        /// <summary>
        /// InsertTemplateFieldsToContractFieldsRoom
        /// </summary>
        /// <param name="contractViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns></returns>
        private async Task <BaseResult <long> > InsertTemplateFieldsToContractFieldsRoom(ContractStaticViewModel contractViewModel, string loggedUser)
        {
            var insertResult = new BaseResult <long>();

            if (contractViewModel.ObjectState == ObjectState.Added)
            {
                var roomFields = await this.iTemplateRoomProperties
                                 .GetListByPredicate(
                    p => p.IsSelected == true && p.TemplateId == contractViewModel.TemplateId)
                                 .ConfigureAwait(false);

                var insertList = new List <ContractRoomProperties>();

                foreach (var item in roomFields.Result)
                {
                    var entity = new ContractRoomProperties
                    {
                        ContractId  = contractViewModel.ContractId,
                        IsDeleted   = item.IsDeleted,
                        FieldId     = item.FieldId,
                        UpdatedBy   = loggedUser,
                        UpdatedDate = DateTime.Now.JakartaOffset(),
                        CreatedBy   = loggedUser,
                        CreatedDate = DateTime.Now.JakartaOffset()
                    };
                    insertList.Add(entity);
                }

                insertResult = await this.iContractRoomProperties.InsertEntityList(insertList).ConfigureAwait(false);
            }
            if (contractViewModel.ObjectState == ObjectState.Modified)
            {
                var roomFields = await this.iContractRoomProperties
                                 .GetListByPredicate(
                    p => p.ContractId == contractViewModel.ContractId && p.IsDeleted == false)
                                 .ConfigureAwait(false);

                var updateList = new List <ContractRoomProperties>();

                foreach (var item in roomFields.Result)
                {
                    var entity = new ContractRoomProperties
                    {
                        ContractId  = contractViewModel.ContractId,
                        IsDeleted   = item.IsDeleted,
                        FieldId     = item.FieldId,
                        UpdatedBy   = loggedUser,
                        UpdatedDate = DateTime.Now.JakartaOffset(),
                        CreatedBy   = item.CreatedBy,
                        CreatedDate = item.CreatedDate
                    };
                    updateList.Add(entity);
                }

                await this.iContractRoomProperties.UpdateEntityList(updateList).ConfigureAwait(false);
            }

            return(insertResult);
        }
示例#19
0
        /// <summary>
        /// ResolveRemainingParamters
        /// </summary>
        /// <param name="destination"></param>
        /// <param name="source"></param>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <param name="objectState"></param>
        public static void ResolveRemainingParamters(ContractHotelTaxRelation destination, ContractHotelTaxRelation source, ContractStaticViewModel contractStaticViewModel, string loggedUser, ObjectState?objectState)
        {
            destination.HotelId    = contractStaticViewModel.HotelDetailsViewModel.HotelId;
            destination.ContractId = contractStaticViewModel.ContractId;

            if (objectState == ObjectState.Added)
            {
                destination.CreatedBy   = loggedUser;
                destination.CreatedDate = DateTime.Now.JakartaOffset();
            }
            else if (objectState == ObjectState.Modified)
            {
                destination.CreatedBy   = source.CreatedBy;
                destination.CreatedDate = source.CreatedDate;
            }
            destination.UpdatedBy   = loggedUser;
            destination.UpdatedDate = DateTime.Now.JakartaOffset();
        }
示例#20
0
        /// <summary>
        /// AutomapperContractHotelTaxRelation
        /// </summary>
        /// <param name="hotelTaxRelationViewModel"></param>
        /// <param name="model"></param>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <param name="objectState"></param>
        /// <returns></returns>
        public static ContractHotelTaxRelation AutomapperContractHotelTaxRelation(HotelTaxRelationViewModel hotelTaxRelationViewModel, ContractHotelTaxRelation model, ContractStaticViewModel contractStaticViewModel, string loggedUser, ObjectState?objectState)
        {
            var mappedModel = AutoMapper.Mapper.Map <ContractHotelTaxRelation>(hotelTaxRelationViewModel);

            ResolveRemainingParamters(mappedModel, model, contractStaticViewModel, loggedUser, objectState);
            return(mappedModel);
        }
示例#21
0
        /// <summary>
        /// InsertTemplateFieldsToContractFieldsHotel
        /// </summary>
        /// <param name="contractViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns></returns>
        private async Task <BaseResult <long> > InsertTemplateClausesToContractClausesLibrary(ContractStaticViewModel contractViewModel, string loggedUser)
        {
            var insertResult = new BaseResult <long>();

            if (contractViewModel.ObjectState == ObjectState.Added)
            {
                var param = new DynamicParameters();
                param.Add(Constants.StoredProcedureParameters.TemplateId, contractViewModel.TemplateId);
                var clauseFields = await this.iClauseLibrary.ExecuteStoredProcedure(
                    Constants.StoredProcedure.GetContractHotelClauses,
                    param).ConfigureAwait(false);

                var insertList = new List <ContractClauseLibraryRelation>();

                foreach (var item in clauseFields.Result)
                {
                    var entity = new ContractClauseLibraryRelation
                    {
                        ContractId      = contractViewModel.ContractId,
                        ClauseLibraryId = item.Id,
                        IsDeleted       = item.IsDeleted,
                        IsActive        = item.IsActive,
                        UpdatedBy       = loggedUser,
                        UpdatedDate     = DateTime.Now.JakartaOffset(),
                        CreatedBy       = loggedUser,
                        CreatedDate     = DateTime.Now.JakartaOffset()
                    };
                    insertList.Add(entity);
                }

                insertResult = await this.iContractClauseLibraryRelation.InsertEntityList(insertList).ConfigureAwait(false);
            }

            if (contractViewModel.ObjectState == ObjectState.Modified)
            {
                var clauseFields = await this.iContractClauseLibraryRelation
                                   .GetListByPredicate(
                    p => p.ContractId == contractViewModel.ContractId && p.IsDeleted == false)
                                   .ConfigureAwait(false);

                var updateList = new List <ContractClauseLibraryRelation>();

                foreach (var item in clauseFields.Result)
                {
                    var entity = new ContractClauseLibraryRelation
                    {
                        ContractId  = contractViewModel.ContractId,
                        IsDeleted   = item.IsDeleted,
                        UpdatedBy   = loggedUser,
                        UpdatedDate = DateTime.Now.JakartaOffset(),
                        CreatedBy   = item.CreatedBy,
                        CreatedDate = item.CreatedDate
                    };
                    updateList.Add(entity);
                }

                await this.iContractClauseLibraryRelation.UpdateEntityList(updateList).ConfigureAwait(false);
            }

            return(insertResult);
        }
示例#22
0
        /// <summary>
        /// CreateContract
        /// </summary>
        /// <param name="contractStaticViewModel"></param>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<ContractStaticViewModel>></returns>
        public async Task <BaseResult <ContractStaticViewModel> > CreateContract(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var result = new BaseResult <ContractStaticViewModel>()
            {
                Result = new ContractStaticViewModel()
            };
            var insertResult = new BaseResult <long>();
            var updateResult = new BaseResult <bool>();
            var contract     = this.iContract.GetEntity(id: contractStaticViewModel.ContractId).Result.Result;

            result.Result.Id = contractStaticViewModel.ContractId;
            contract         = DbMapperMasterdata.AutomapperContract(contractStaticViewModel, contract, loggedUser, contractStaticViewModel.ObjectState);

            if (contractStaticViewModel.ObjectState == ObjectState.Added)
            {
                contract.StatusID = 1;  /// draft
                insertResult      = await this.iContract.InsertEntity(contract).ConfigureAwait(false);

                contractStaticViewModel.ContractId = (int)insertResult.Result;
                result.Result.Id = (int)insertResult.Result;
            }
            if (contractStaticViewModel.ObjectState == ObjectState.Modified)
            {
                var contractModified = AutoMapper.Mapper.Map <Contract>(contractStaticViewModel);
                updateResult = await iContract.UpdateEntityByDapper(contractModified).ConfigureAwait(false);

                result.Result.Id = contractStaticViewModel.ContractId;
            }

            var insertResultHotelFields = await
                                          this.InsertTemplateFieldsToContractFieldsHotel(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            var insertResultRoomFields = await
                                         this.InsertTemplateFieldsToContractFieldsRoom(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            var insertContractClausesLibraryRelation = await
                                                       this.InsertTemplateClausesToContractClausesLibrary(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            await this.SaveContractHotel(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            await this.SaveContractContact(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            await this.SaveContractHotelTax(contractStaticViewModel, loggedUser).ConfigureAwait(false);

            await this.SaveContractPaymentMethod(contractStaticViewModel).ConfigureAwait(false);

            if (contractStaticViewModel.ObjectState == ObjectState.Added && insertResult.IsError && insertResult.ExceptionMessage != null)
            {
                result.IsError          = insertResult.IsError;
                result.ExceptionMessage = insertResult.ExceptionMessage;
                result.Result.Id        = (int)insertResult.Result;
                return(result);
            }
            if (contractStaticViewModel.ObjectState == ObjectState.Modified && updateResult.IsError && updateResult.ExceptionMessage != null)
            {
                result.IsError          = updateResult.IsError;
                result.ExceptionMessage = updateResult.ExceptionMessage;
                result.Result.Id        = contractStaticViewModel.ContractId;
                return(result);
            }

            return(result);
        }
示例#23
0
        /// <summary>
        /// SaveContractHotel
        /// </summary>
        /// <param name="contractStaticViewModel"/>
        /// <param name="loggedUser"></param>
        /// <returns>Task<BaseResult<ContractHotel>></returns>
        private async Task <BaseResult <ContractHotel> > SaveContractHotel(ContractStaticViewModel contractStaticViewModel, string loggedUser)
        {
            var result = new BaseResult <ContractHotel>()
            {
                Result = new ContractHotel()
            };
            var hotel = this.iHotel.GetEntity(contractStaticViewModel.HotelDetailsViewModel.HotelId).Result.Result;

            if (contractStaticViewModel.HotelDetailsViewModel.ObjectState == ObjectState.Added)
            {
                var model       = new ContractHotel();
                var mappedModel = DbMapperMasterdata.AutomapperContractHotel(contractStaticViewModel, model, hotel, loggedUser, contractStaticViewModel.HotelDetailsViewModel.ObjectState);

                await this.SaveContractEmailReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);

                await this.SaveContractTelephoneReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);

                var insertResult = await this.iContractHotel.InsertEntity(mappedModel).ConfigureAwait(false);

                if (insertResult.IsError && insertResult.ExceptionMessage != null)
                {
                    result.IsError          = insertResult.IsError;
                    result.ExceptionMessage = insertResult.ExceptionMessage;
                }
                else if (insertResult == null)
                {
                    result = null;
                    return(result);
                }
                result.Result.Id = (int)insertResult.Result;
            }
            if (contractStaticViewModel.HotelDetailsViewModel.ObjectState == ObjectState.Modified)
            {
                var model1 = await this.iContractHotel.GetEntity(contractStaticViewModel.ContractId).ConfigureAwait(false);

                var model = await iContractHotel.GetListByPredicate(p => p.HotelId == contractStaticViewModel.HotelDetailsViewModel.HotelId && p.ContractId == contractStaticViewModel.ContractId).ConfigureAwait(false);

                var mappedModel  = DbMapperMasterdata.AutomapperContractHotel(contractStaticViewModel, model.Result[0], hotel, loggedUser, contractStaticViewModel.HotelDetailsViewModel.ObjectState);
                var updateResult = await this.iContractHotel.UpdateEntityByDapper(mappedModel).ConfigureAwait(false);

                await this.SaveContractEmailReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);

                await this.SaveContractTelephoneReservation(contractStaticViewModel, loggedUser).ConfigureAwait(false);

                if (updateResult.IsError && updateResult.ExceptionMessage != null)
                {
                    result.IsError          = updateResult.IsError;
                    result.ExceptionMessage = updateResult.ExceptionMessage;
                }
                else if (updateResult == null)
                {
                    result = null;
                    return(result);
                }
                if (updateResult.Result == true)
                {
                    result.Result.ContractId = contractStaticViewModel.ContractId;
                }
            }
            return(result);
        }