public BaseResponse <bool> DeleteYachtPricingPlans(int Id)
        {
            try
            {
                if (Id == 0 && Id < 0)
                {
                    return(BaseResponse <bool> .BadRequest(false));
                }

                YachtPricingPlanViewModel yachtPricingView  = new YachtPricingPlanViewModel();
                YachtPricingPlans         yachtPricingPlans = _context.YachtPricingPlans.AsNoTracking().FirstOrDefault(x => x.Id == Id);
                yachtPricingPlans.Deleted = true;
                _context.Update(yachtPricingPlans);
                _context.SaveChanges();
                List <YachtPricingPlanDetails> yachtPricingPlanDetails = _context.YachtPricingPlanDetails.AsNoTracking().Where(x => x.PricingPlanFid == yachtPricingPlans.Id).ToList();
                foreach (var item in yachtPricingPlanDetails)
                {
                    item.Deleted = true;
                    _context.Update(item);
                    _context.SaveChanges();
                }
                YachtPricingPlanInformations yachtPricingPlanInfo = _context.YachtPricingPlanInformations.AsNoTracking().FirstOrDefault(x => x.PricingPlanFid == yachtPricingPlans.Id);
                yachtPricingPlanInfo.Deleted = true;
                _context.Update(yachtPricingPlanInfo);
                _context.SaveChanges();
                return(BaseResponse <bool> .Success(true));
            }
            catch (Exception ex)
            {
                return(BaseResponse <bool> .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace));
            }
        }
        public async Task <BaseResponse <bool> > CreateYachtPricingPlans(YachtPricingPlanCreateModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BaseResponse <bool> .BadRequest(false));
                }

                YachtPricingPlans yachtPricing = new YachtPricingPlans();
                yachtPricing                       = _mapper.Map <YachtPricingPlans>(model);
                yachtPricing.Deleted               = model.Deleted;
                yachtPricing.PricingCategoryFid    = model.PricingCategoryFid;
                yachtPricing.PricingCategoryResKey = model.PricingCategoryResKey;
                yachtPricing.UniqueId              = UniqueIDHelper.GenarateRandomString(12);
                yachtPricing.CreatedBy             = new Guid("B7A7A1E2-7F34-43E2-BE21-746F2271ECEC");
                yachtPricing.CreatedDate           = DateTime.Now;
                yachtPricing.LastModifiedBy        = new Guid("B7A7A1E2-7F34-43E2-BE21-746F2271ECEC");
                yachtPricing.LastModifiedDate      = DateTime.Now;
                yachtPricing.IsActivated           = model.IsActivated;
                await _context.YachtPricingPlans.AddAsync(yachtPricing);

                await _context.SaveChangesAsync();

                foreach (var item in model.lstPricingPlanDetail)
                {
                    YachtPricingPlanDetails yachtPricingDetail = new YachtPricingPlanDetails();
                    yachtPricingDetail = _mapper.Map <YachtPricingPlanDetails>(item);
                    yachtPricingDetail.PricingPlanFid = yachtPricing.Id;
                    yachtPricingDetail.Deleted        = false;
                    //yachtPricingDetail.CreatedBy = GetUserGuidId();
                    yachtPricingDetail.CreatedDate = DateTime.Now;
                    //yachtPricingDetail.LastModifiedBy = GetUserGuidId();
                    yachtPricingDetail.LastModifiedDate = DateTime.Now;
                    yachtPricingDetail.CultureCode      = model.CultureCode;
                    yachtPricingDetail.CurrencyCode     = model.CurrencyCode;
                    await _context.YachtPricingPlanDetails.AddAsync(yachtPricingDetail);

                    await _context.SaveChangesAsync();
                }
                YachtPricingPlanInformations yachtPricingInfo = new YachtPricingPlanInformations();
                yachtPricingInfo = _mapper.Map <YachtPricingPlanInformations>(model);
                yachtPricingInfo.PricingPlanFid   = yachtPricing.Id;
                yachtPricingInfo.Deleted          = false;
                yachtPricingInfo.LastModifiedBy   = new Guid("B7A7A1E2-7F34-43E2-BE21-746F2271ECEC");
                yachtPricingInfo.LastModifiedDate = DateTime.Now;
                await _context.YachtPricingPlanInformations.AddAsync(yachtPricingInfo);

                await _context.SaveChangesAsync();

                return(BaseResponse <bool> .Success());
            }
            catch (Exception ex)
            {
                return(BaseResponse <bool> .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace));
            }
        }
        public BaseResponse <bool> UpdateYachtPricingPlans(YachtPricingPlanCreateModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BaseResponse <bool> .BadRequest());
                }
                int updatedInfo                = 0;
                int resultUpdatedDetail        = 0;
                YachtPricingPlans yachtPricing = _context.YachtPricingPlans.AsNoTracking().FirstOrDefault(x => x.Id == model.Id && x.YachtFid == model.YachtFid);
                yachtPricing.YachtFid              = model.YachtFid;
                yachtPricing.PricingCategoryFid    = model.PricingCategoryFid;
                yachtPricing.PricingCategoryResKey = model.PricingCategoryResKey;
                yachtPricing.EffectiveDate         = model.EffectiveDate;
                yachtPricing.EffectiveEndDate      = model.EffectiveEndDate;
                yachtPricing.IsRecurring           = model.IsRecurring;
                yachtPricing.PlanName              = model.PlanName;
                yachtPricing.BasedPortLocation     = model.BasedPortLocation;
                yachtPricing.YachtPortFid          = model.YachtPortFid;
                yachtPricing.YachtPortName         = model.YachtPortName;
                yachtPricing.Remark      = model.Remark;
                yachtPricing.Deleted     = model.Deleted;
                yachtPricing.IsActivated = model.IsActivated;
                _context.Update(yachtPricing);
                int resultUpdated = _context.SaveChanges();

                if (resultUpdated != 0)
                {
                    YachtPricingPlanInformations yachtPricingInfo = _context.YachtPricingPlanInformations.AsNoTracking().FirstOrDefault(x => x.PricingPlanFid == model.Id);
                    yachtPricingInfo.LanguageFid = model.LanguageFid;
                    yachtPricingInfo.PackageInfo = model.PackageInfo;
                    yachtPricingInfo.Remark      = model.Remark;
                    yachtPricingInfo.Deleted     = model.Deleted;
                    yachtPricingInfo.IsActivated = model.IsActivated;
                    _context.YachtPricingPlanInformations.Update(yachtPricingInfo);
                    updatedInfo = _context.SaveChanges();
                    if (updatedInfo != 0)
                    {
                        List <YachtPricingPlanDetails> yachtPricingDetails = _context.YachtPricingPlanDetails.AsNoTracking().Where(x => x.PricingPlanFid == model.Id).ToList();
                        for (int i = 0; i < yachtPricingDetails.Count(); i++)
                        {
                            yachtPricingDetails[i].PricingTypeFid    = model.lstPricingPlanDetail[i].PricingTypeFid;
                            yachtPricingDetails[i].PricingTypeResKey = model.lstPricingPlanDetail[i].PricingTypeResKey;
                            yachtPricingDetails[i].ContactOwner      = model.lstPricingPlanDetail[i].ContactOwner;
                            yachtPricingDetails[i].Price             = model.lstPricingPlanDetail[i].Price;
                            yachtPricingDetails[i].CurrencyCode      = model.CurrencyCode;
                            yachtPricingDetails[i].CultureCode       = model.CultureCode;
                            yachtPricingDetails[i].Deleted           = model.lstPricingPlanDetail[i].Deleted;
                            _context.YachtPricingPlanDetails.Update(yachtPricingDetails[i]);
                        }
                        resultUpdatedDetail = _context.SaveChanges();
                    }
                }
                if (resultUpdatedDetail != 0)
                {
                    return(BaseResponse <bool> .Success(true, "Success", "MESSAGE_UPDATESUCCESS"));
                }
                return(BaseResponse <bool> .NoContent(false));
            }
            catch (Exception ex)
            {
                return(BaseResponse <bool> .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace));
            }
        }