public AirPackageModel GetPackageGroupNameDdl(AirPackageModel _model)
        {
            AirPackageGroupProvider _apgp = new AirPackageGroupProvider();

            _model.ddlPackageGroupName = new SelectList(_apgp.GetPackageGroupNameList(), "PackageGroupId", "GroupName");
            return(_model);
        }
        private AirPackageModel GetViewModel(int id, string tranMode, bool isPost = false)
        {
            ///tranMode = "N" , "U", "L", "V"

            if (id != 0 && isPost == false)
            {
                _modObj = _provider.GetDetails(id);
            }

            _modObj.EffectiveFrom = DateTime.Now;
            _modObj.ExpireOn      = DateTime.Now.AddDays(1);


            _modObj.ddlCountryList = CountryProvider.GetSelectListOptions();
            _modObj.ddlCityList    = CoreCityProvider.GetSelectListOptions(_modObj.CountryId);
            _modObj.ddlDuration    = AirPackageProvider.GetSelectListOptionDuration();
            _modObj.ddlZoneList    = new SelectList(_provider.GetZoneList(), "ZoneId", "ZoneValue");
            _provider.GetPackageGroupNameDdl(_modObj);



            //  _modObj.packageDetail = new ATLTravelPortal.Repository.PackageProvider().GetDetail(id.ToString());
            SetUpFormParams(tranMode);
            return(_modObj);
        }
        public ServiceResponse ActionSaveUpdate(AirPackageModel model, string tranMode)
        {
            try
            {
                bool isExist = IsPackageExist(model.PackageId, model.Name);
                if (isExist == true)
                {
                    _response = new ServiceResponse("Package with same name already exist!!", MessageType.Warning, false, "Add");
                    return(_response);
                }
                if (tranMode == "N")
                {
                    return(Save(model));
                }
                else if (tranMode == "U")
                {
                    return(Edit(model));
                }
            }
            catch (SqlException ex)
            {
                _response = new ServiceResponse(ServiceResponsesProvider.SqlExceptionMessage(ex), MessageType.SqlException, false);
            }
            catch (Exception ex)
            {
                _response = new ServiceResponse(ex.Message, MessageType.Exception, false);
            }

            return(_response);
        }
        public ServiceResponse Edit(AirPackageModel model)
        {
            try
            {
                using (var ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    var result = _ent.Air_Packages.Where(x => x.PackageId == model.PackageId).FirstOrDefault();
                    if (result != null)
                    {
                        result.PackageId = model.PackageId;
                        result.CountryId = model.CountryId;
                        result.ZoneId    = model.ZoneId;
                        //result.CityId = model.CityId;
                        result.PackageGroupId = model.PackageGroupId;
                        result.Name           = model.Name.Trim();
                        result.PackageCode    = model.PackageCode;
                        result.URL            = model.URL.Trim();
                        //result.Tags = model.Tags;
                        result.StartingPrice         = model.StartingPrice;
                        result.StartingPriceINR      = model.StartingINR;
                        result.StartingPriceUSD      = model.StartingUSD;
                        result.Overview              = model.Overview;
                        result.Itineary              = model.Itineary;
                        result.Destination           = model.Destination;
                        result.TermAndConditions     = model.TermAndConditions;
                        result.InclusiveAndExclusive = model.InclusiveAndExclusive;
                        result.Rate          = model.Rate;
                        result.EffectiveFrom = DateTime.UtcNow;
                        result.ExpireOn      = DateTime.UtcNow;

                        result.UpdatedBy   = session.AppUserId;
                        result.UpdatedDate = currentDate;
                        result.IsPublish   = model.IsPublish;

                        result.Duration     = model.Duration;
                        result.Description  = model.PackageSummary;
                        result.IsB2CPackage = true;
                        //result.IsB2BPackage = model.IsB2BPackage;
                        //result.B2CMarkup = model.B2CMarkup;
                        //result.B2BMarkUp = model.B2BMarkUp;
                        result.isFeatured = false;

                        _ent.ApplyCurrentValues(result.EntityKey.EntitySetName, result);
                        _ent.SaveChanges();
                    }
                    ts.Complete();
                    _response = new ServiceResponse("Record successfully updated!!", MessageType.Success, true, "Edit");
                }
            }
            catch (SqlException ex)
            {
                _response = new ServiceResponse(ServiceResponsesProvider.SqlExceptionMessage(ex), MessageType.SqlException, false);
            }
            catch (Exception ex)
            {
                _response = new ServiceResponse(ex.Message, MessageType.Exception, false, "Edit");
            }
            return(_response);
        }
        public ServiceResponse Save(AirPackageModel model)
        {
            try
            {
                using (var ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    Air_Packages obj = new Air_Packages
                    {
                        PackageId = model.PackageId,
                        CountryId = model.CountryId,
                        ZoneId    = model.ZoneId,
                        //CityId = model.CityId,
                        PackageGroupId = model.PackageGroupId,
                        Name           = model.Name.Trim(),
                        PackageCode    = model.PackageCode,
                        URL            = model.URL.Trim(),
                        //Tags = model.Tags,
                        StartingPrice         = model.StartingPrice,
                        StartingPriceINR      = model.StartingINR,
                        StartingPriceUSD      = model.StartingUSD,
                        Overview              = model.Overview,
                        Itineary              = model.Itineary,
                        Destination           = model.Destination,
                        TermAndConditions     = model.TermAndConditions,
                        InclusiveAndExclusive = model.InclusiveAndExclusive,
                        Rate            = model.Rate,
                        ImageFolderName = AppGuid.NewGuid(Convert.ToChar("D")),
                        EffectiveFrom   = DateTime.UtcNow,
                        ExpireOn        = DateTime.UtcNow,
                        CreatedBy       = session.AppUserId,
                        CreatedDate     = currentDate,
                        IsPublish       = model.IsPublish,

                        Duration     = model.Duration,
                        Description  = model.PackageSummary,
                        IsB2CPackage = true,
                        //IsB2BPackage = model.IsB2BPackage,
                        //B2CMarkup = model.B2CMarkup,
                        //B2BMarkUp = model.B2BMarkUp,
                        isFeatured = false
                    };
                    _ent.AddToAir_Packages(obj);
                    _ent.SaveChanges();
                    ts.Complete();
                    _response = new ServiceResponse("Record successfully created!!", MessageType.Success, true, "Edit");
                    return(_response);
                }
            }
            catch (SqlException ex)
            {
                _response = new ServiceResponse(ServiceResponsesProvider.SqlExceptionMessage(ex), MessageType.SqlException, false);
            }
            catch (Exception ex)
            {
                _response = new ServiceResponse(ex.Message, MessageType.Exception, false, "Edit");
            }
            return(_response);
        }
        public ActionResult Edit(int id, AirPackageModel model)
        {
            if (model.StartingPrice == null && model.StartingINR == null && model.StartingUSD == null)
            {
                TempData["InfoMessage"] = "Enter atleast one price";
                GetViewModel(id, "U");
                _provider.GetPackageGroupNameDdl(_modObj);

                return(View(_modObj));
            }
            else
            {
                model.PackageId = id;
                return(ActionSaveUpdate(model, "U"));
            }
        }
        public ActionResult ActionSaveUpdate(AirPackageModel model, string tranMode)
        {
            int    id       = model.PackageId;
            string saveMode = string.Empty;

            _modObj.CountryId = model.CountryId;
            _modObj.CityId    = model.CityId;



            GetViewModel(id, tranMode, true);

            string viewPagePath = string.Empty;
            string vucPagePath  = "VUC_Add";

            if (ModelState.IsValid)
            {
                try
                {
                    _response = _provider.ActionSaveUpdate(model, tranMode);
                }
                catch (Exception ex)
                {
                    _response = new ServiceResponse(ex.Message, MessageType.Exception, false);
                }
            }
            else
            {
                _response = new ServiceResponse("Invalid Fields. Please fill mandatory fields!!", MessageType.Error, false);
            }
            if (_response.ResponseStatus == false)
            {
                TempData["ActionResponse"] = _response.ResponseMessage;
            }
            if (_response.ResponseStatus == true)
            {
                TempData["SuccessMessage"] = _response.ResponseMessage;
            }
            if (Request.IsAjaxRequest())
            {
                return(PartialView(vucPagePath, _modObj));
            }
            else
            {
                return(View(viewPagePath, _modObj));
            }
        }
        public IEnumerable <AirPackageModel> GetList()
        {
            int sno = 0;
            List <AirPackageModel> model = new List <AirPackageModel>();
            var result = _ent.Air_Packages.OrderBy(x => x.Name);

            foreach (var item in result)
            {
                sno++;
                AirPackageModel obj = new AirPackageModel
                {
                    SNO         = sno,
                    PackageId   = item.PackageId,
                    CountryId   = item.CountryId,
                    ZoneId      = item.ZoneId,
                    CountryName = GetCountryName(item.CountryId),
                    Name        = item.Name,
                    PackageCode = item.PackageCode,
                    URL         = item.URL,
                    //Tags = item.Tags,
                    StartingPrice         = item.StartingPrice,
                    Overview              = item.Overview,
                    Itineary              = item.Itineary,
                    Destination           = item.Destination,
                    TermAndConditions     = item.TermAndConditions,
                    InclusiveAndExclusive = item.InclusiveAndExclusive,
                    Rate            = item.Rate,
                    ImageFolderName = item.ImageFolderName,
                    //EffectiveFrom = item.EffectiveFrom,
                    //ExpireOn = item.ExpireOn,
                    CreatedBy   = item.CreatedBy,
                    CreatedDate = item.CreatedDate,
                    UpdatedBy   = item.UpdatedBy,
                    UpdatedDate = item.UpdatedDate,
                    IsPublish   = item.IsPublish,
                };
                model.Add(obj);
            }

            return(model.AsEnumerable());
        }
        public AirPackageModel GetDetails(int PackageId)
        {
            var             result = _ent.Air_Packages.Where(x => x.PackageId == PackageId).FirstOrDefault();
            AirPackageModel obj    = new AirPackageModel
            {
                PackageId = result.PackageId,
                CountryId = result.CountryId,
                //CityId = result.CityId,
                ZoneId         = result.ZoneId,
                PackageGroupId = result.PackageGroupId,
                Name           = result.Name,
                PackageCode    = result.PackageCode,
                URL            = result.URL,
                //Tags = result.Tags,
                StartingPrice         = result.StartingPrice,
                StartingINR           = result.StartingPriceINR,
                StartingUSD           = result.StartingPriceUSD,
                Overview              = result.Overview,
                Itineary              = result.Itineary,
                Destination           = result.Destination,
                TermAndConditions     = result.TermAndConditions,
                InclusiveAndExclusive = result.InclusiveAndExclusive,
                Rate            = result.Rate,
                ImageFolderName = result.ImageFolderName,
                //EffectiveFrom = result.EffectiveFrom,
                //ExpireOn = result.ExpireOn,
                CreatedBy      = result.CreatedBy,
                CreatedDate    = result.CreatedDate,
                UpdatedBy      = result.UpdatedBy,
                UpdatedDate    = result.UpdatedDate,
                Duration       = result.Duration,
                PackageSummary = result.Description,
                //IsB2BPackage = (bool)result.IsB2BPackage,
                IsB2CPackage = (bool)result.IsB2CPackage,
                //B2BMarkUp = result.B2BMarkUp,
                //B2CMarkup = result.B2CMarkup,
                IsPublish = result.IsPublish,
            };

            return(obj);
        }
        public ActionResult Add(AirPackageModel model)
        {
            //return ActionSaveUpdate(model, "N");

            if (model.StartingPrice == null && model.StartingINR == null && model.StartingUSD == null)
            {
                TempData["InfoMessage"] = "Enter atleast one price";
                GetViewModel(0, "N");
                return(View("Add", _modObj));
            }
            else
            {
                ActionSaveUpdate(model, "N");
                if (_response.ResponseStatus == true)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View("Add", _modObj));
                }
            }
        }
 public ActionResult Index(int?page, string extraParams)
 {
     _modObj = GetViewModelList(page);
     return(View(_modObj));
 }