public JsonResult SetPositionFOC(PositionFOCViewModel model)
        {
            PositionFOCSetReq request  = new PositionFOCSetReq();
            PositionFOCSetRes response = new PositionFOCSetRes();

            if (model.StandardFoc)
            {
                var ProdRangeList = model.PositionFOCData.Select(a => new { a.ProductRangeId }).Distinct().ToList();
                foreach (var item in ProdRangeList)
                {
                    var data = model.PositionFOCData.Where(a => a.Period.ToUpper() == "ALL" && a.ProductRangeId == item.ProductRangeId).FirstOrDefault();
                    model.PositionFOCData.Where(a => a.Period.ToUpper() != "ALL" && a.ProductRangeId == item.ProductRangeId).ToList()
                    .ForEach(y => y.FOCQty = data.FOCQty);
                }
                //var res = model.PositionFOCData.Where(x => x.Period.ToUpper() == "ALL").FirstOrDefault();
                //model.PositionFOCData.Where(x => x.Period.ToUpper() != "ALL").ToList().ForEach(y => y.FOCQty = res.FOCQty);
            }

            List <mPositionFOC> lstPositionFOC = new List <mPositionFOC>();

            foreach (var objModel in model.PositionFOCData.Where(x => x.Period.ToUpper() != "ALL"))
            {
                var obj = new mPositionFOC
                {
                    PositionFOCId = objModel.PositionFOCId,
                    PositionId    = objModel.PositionId,
                    FOCQty        = objModel.FOCQty,
                    CreateUser    = ckUserEmailId,
                    EditUser      = ckUserEmailId
                };

                if (objModel.Period == null || Convert.ToDateTime(objModel.Period) == DateTime.MinValue)
                {
                    obj.Period = null;
                }
                else
                {
                    obj.Period = Convert.ToDateTime(objModel.Period);
                }

                lstPositionFOC.Add(obj);
            }

            request.StandardFOC = model.StandardFoc;
            request.PositionFOC = lstPositionFOC;
            request.IsClone     = model.IsClone;
            response            = positionProviders.SetPostionFOC(request, token).Result;

            if (response != null)
            {
                if (response.ResponseStatus.Status.ToLower() == "success")
                {
                    return(Json("success"));
                }
            }
            return(Json("failure"));
        }
        public ActionResult GetPositionFOCPartView(PositionFOCGetReq request)
        {
            PositionFOCGetRes response = new PositionFOCGetRes();

            response = positionProviders.GetPostionFOC(request, token).Result;

            PositionFOCViewModel model = new PositionFOCViewModel {
                StandardFoc = (response.StandardFOC == null || response.StandardFOC == true) ? true : false
            };

            var ProdRangeList = response.PositionFOC.Select(a => new { a.ProductRange, a.ProductRangeId }).Distinct().ToList();

            foreach (var ProdRange in ProdRangeList)
            {
                var IsExist = model.PositionFOCData.Where(a => a.ProductRangeId == ProdRange.ProductRangeId).FirstOrDefault();
                if (IsExist == null)
                {
                    var FOCList = response.PositionFOC.Where(a => a.ProductRangeId == ProdRange.ProductRangeId).Select(a => new { a.ProductRange, a.ProductRangeId, a.FOCQty }).Distinct().ToList();
                    if (FOCList?.Count == 1)
                    {
                        model.PositionFOCData.AddRange(FOCList.Select(a => new PositionFOCData
                        {
                            QRFID           = request.QRFID,
                            PositionId      = request.PositionId,
                            Period          = "ALL",
                            CityName        = "ALL",
                            ProductName     = "ALL",
                            PaxSlab         = "ALL",
                            Type            = "ALL",
                            ProductCategory = "ALL",
                            FOCQty          = a.FOCQty,
                            ProductRange    = a.ProductRange,
                            ProductRangeId  = a.ProductRangeId
                        }));
                    }
                    else
                    {
                        model.PositionFOCData.Add(new PositionFOCData
                        {
                            QRFID           = request.QRFID,
                            PositionId      = request.PositionId,
                            Period          = "ALL",
                            CityName        = "ALL",
                            ProductName     = "ALL",
                            PaxSlab         = "ALL",
                            Type            = "ALL",
                            ProductCategory = "ALL",
                            FOCQty          = 0,
                            ProductRange    = FOCList[0].ProductRange,
                            ProductRangeId  = FOCList[0].ProductRangeId
                        });
                    }
                }
            }

            model.PositionFOCData.AddRange(response.PositionFOC.Select(a => new PositionFOCData
            {
                PositionFOCId     = a.PositionFOCId,
                QRFID             = a.QRFID,
                PositionId        = a.PositionId,
                DepartureId       = a.DepartureId,
                Period            = a.Period.ToString(),
                PaxSlabId         = a.PaxSlabId,
                PaxSlab           = a.PaxSlab,
                Type              = a.Type,
                RoomId            = a.RoomId,
                IsSupplement      = a.IsSupplement,
                SupplierId        = a.SupplierId,
                Supplier          = a.Supplier,
                ProductCategoryId = a.ProductCategoryId,
                ProductCategory   = a.ProductCategory,
                ProductRangeId    = a.ProductRangeId,
                ProductRange      = a.ProductRange,
                ContractId        = a.ContractId,
                CityId            = a.CityId,
                CityName          = a.CityName,
                ProductId         = a.ProductId,
                ProductName       = a.ProductName,
                Quantity          = a.Quantity,
                FOCQty            = a.FOCQty
            }));

            return(PartialView("_PositionFOC", model));
        }