public ActionResult View(int id)
        {
            var hasAccess = AuthorizationManager.HasAccess("WebsiteContract.View");

            if (!hasAccess)
            {
                throw new Exception("شما مجاز به انجام این عملیات نیستید");
            }

            var total = 0;

            LogManagement.Logging($"View WebsiteContract id:{id}", (int)LogType.Info, "View WebsiteContract", "WebsiteContractController/ViewAction");
            var model = WebsiteContractService.GetInstance().GetDefaultQuery(new WebsiteContractSearchObject(),
                                                                             new List <Navigations> {
                Navigations.person, Navigations.City
            }, out total)
                        .Where(w => w.Id == id).FirstOrDefault();

            var planDpService   = PlanDurationPriceService.GetInstance();
            var planTypeService = PlanTypeService.GetInstance();

            model.WebsiteContractItems.ToList().ForEach(item =>
            {
                //var ptId = planDpService.GetEntity(item.PlanDurationPriceId).PlanTypeId;
                //item.PlanTitle = planTypeService.GetEntity(ptId).PlanTitle;
            });

            return(View(model));
        }
        private ContractDTO GetReportDTO(int id)
        {
            var total    = 0;
            var Contract = WebsiteContractService.GetInstance().GetDefaultQuery(new WebsiteContractSearchObject(), out total)
                           .Where(w => w.Id == id).FirstOrDefault();

            var geoDivisionService = GeoDivisionService.GetInstance();

            var city  = geoDivisionService.GetDefaultQuery().Where(w => w.Id == Contract.CustomerCityId).FirstOrDefault();
            var state = geoDivisionService.GetDefaultQuery().Where(w => w.Id == city.ParentId).FirstOrDefault();


            var obj = new ContractDTO
            {
                ContractNo          = Contract.ContractNo.ToString(),
                CustomerCity        = city.Title,
                CustomerManagerName = Contract.CustomerManagerName,
                CustomerMobile      = Contract.CustomerMobile,
                CustomerName        = Contract.CustomerName,
                DomainId            = Contract.DomainId,
                CustomerState       = state.Title,
                DiscountPriceStr    = Contract.DiscountTotalPrice.SplitDigit(),
                PaymentPriceStr     = Contract.PaymentTotalPrice.SplitDigit(),
                ContractDate        = Contract.ContractDate.ToPersianString(),
                ContractContext     = FillContextData(Contract),
                TotalPriceStr       = Contract.TotalPrice.SplitDigit(),
            };

            var contractPlans = new List <ContractPlanDTO>();

            obj.ContractPlans = contractPlans;

            return(obj);
        }
        public ContractGrid GetAllContracts(WebsiteContractSearchObject searchObject)
        {
            var gridPageSize = searchObject.PageSize ?? Utility.PageSize;

            var contractService = WebsiteContractService.GetInstance();

            int totalCount = 0;

            var data = (from c in contractService.GetDefaultQuery(searchObject, out totalCount)
                        select new ContractViewModel
            {
                Id = c.Id,
                ContractNo = c.ContractNo,
                PersianContractDate = c.ContractDate.ToPersianString(),
                CustomerMobile = c.CustomerMobile,
                CustomerName = c.CustomerName,
                CustomerManagerName = c.CustomerManagerName,
                DomainId = c.DomainId,
                PaymentTotalPriceStr = c.PaymentTotalPrice.SplitDigit()
            });

            var gridData = new ContractGrid
            {
                ContractList = data.ToList(),
                PageCount    = Utility.CalculatePageSize(totalCount, gridPageSize),
                PageSize     = gridPageSize
            };

            return(gridData);
        }
        public ActionResult Submit(WebsiteContract entity)
        {
            var modeTitle = entity.Id != 0 ? $"Update WebsiteContract id:{entity.Id}" : "Create WebsiteContract";

            LogManagement.Logging($"modeTitle", (int)LogType.Info, "Create/Update WebsiteContract", "WebsiteContractController/SubmitAction");

            var errorMessage = "";

            //var x = entity.Password;
            if (entity.ContractDate != null)
            {
                entity.ContractDate = Utility.ConvertToPersian(entity.ContractDate.ToString());
            }
            //entity.ContractDate = DateTime.Now;
            //if (entity.FromDate != null)
            //    entity.FromDate = Utility.ConvertToPersian(entity.FromDate.ToString());
            //if (entity.ToDate != null)
            //    entity.ToDate = Utility.ConvertToPersian(entity.ToDate.ToString());


            var contractService = WebsiteContractService.GetInstance();

            try
            {
                contractService.Save(entity);
            }
            catch (Exception e)
            {
                errorMessage = e.Message;
            }

            return(Json(errorMessage, JsonRequestBehavior.AllowGet)); //message
        }
        public ActionResult SaveContractContext(WebsiteContract entity)
        {
            LogManagement.Logging("update context", (int)LogType.Info, "Update WebsiteContractContext", "WebsiteContractController/SaveWebsiteContractContext");

            var errorMessage = "";

            try
            {
                WebsiteContractService.GetInstance().SaveContext(entity.ContractContext);
            }
            catch (Exception e)
            {
                errorMessage = e.Message;
            }

            return(Json(errorMessage, JsonRequestBehavior.AllowGet)); //message
        }
        public ActionResult Delete(int id)
        {
            var hasAccess = AuthorizationManager.HasAccess("WebsiteContract.Delete");

            if (!hasAccess)
            {
                throw new Exception("شما مجاز به انجام این عملیات نیستید");
            }

            LogManagement.Logging($"Delete WebsiteContract id:{id}", (int)LogType.Info, "Delete WebsiteContract", "WebsiteContractController/DeleteAction");

            var errorMessage = "";

            try
            {
                WebsiteContractService.GetInstance().Delete(id);
            }
            catch (Exception e)
            {
                errorMessage = e.Message;
            }
            return(Json(errorMessage, JsonRequestBehavior.AllowGet)); //message
        }
        public ActionResult Update(int id)
        {
            var hasAccess = AuthorizationManager.HasAccess("WebsiteContract.Update");

            if (!hasAccess)
            {
                throw new Exception("شما مجاز به انجام این عملیات نیستید");
            }

            LogManagement.Logging($"update WebsiteContract id:{id}", (int)LogType.Info, "Update WebsiteContract", "WebsiteContractController/UpdateAction");
            var model = WebsiteContractService.GetInstance().GetEntity(id);

            //var cityList = CityService.GetInstance().GetDefaultQuery();
            //var cityRegionList = RegionService.GetInstance().GetQueryByCityId(model.City.Id);
            //var jobList = JobService.GetInstance().GetDefaultQuery();
            //var adTypeList = AdTypeService.GetInstance().GetDefaultQuery(); ;

            //ViewBag.Cities = cityList;
            //ViewBag.Jobs = jobList;
            //ViewBag.AdTypes = adTypeList;
            //ViewBag.Regions = cityRegionList;

            return(View(model));
        }