BrandApplicationViewModel getInformationForCreateCompanyChoose(BrandApplicationViewModel gettingModel)  // burada firma ekleme yapıldığında dönücek olanlar
        {
            ApplicationClassListViewModel    appClass    = gettingModel.applicationClassList;
            ApplicationSubClassListViewModel appSubClass = gettingModel.applicationSubClassList;
            BrandApplicationViewModel        model       = gettingModel;

            model        = getBrandAppStandartValues(gettingModel);
            model.prices = _applicationPricesService.getPrices(model.selectedBrandApplication);//standart gelmesi gerek her zaman için
            model.brandApplicationVisibilty = _mapper.Map <BrandApplicationVisibilityViewModel>(_mainContext.brandApplicationVisiblities.Where(w => w.brandApplicationTypesId == gettingModel.selectedBrandApplication).FirstOrDefault());
            if (model.brandApplicationVisibilty != null && model.brandApplicationVisibilty.applicationClassStatus)
            { // burada eğer  sınıfların gelmesini istiyorsak listeyi çeker
                model.applicationClassList    = _brandApplicationClassesService.getApplicationClassList();
                model.applicationSubClassList = _brandApplicationClassesService.getApplicationSubClassList(model.subclassSearchText);
                foreach (var item in model.applicationClassList.applicationClassList)
                {
                    var selectedClass = appClass.applicationClassList.Where(w => w.id == item.id).FirstOrDefault();
                    item.additionalClass = selectedClass.additionalClass;
                    item.isSelected      = selectedClass.isSelected;
                }
                foreach (var item in model.applicationSubClassList.subList)
                {
                    var selectedClass = appSubClass.subList.Where(w => w.id == item.id).FirstOrDefault();
                    item.isSelected = selectedClass.isSelected;
                }
                double calculatedPrice = _applicationPricesService.brandApplicationTotalPrice(model);
                model.prices.totalPrice = calculatedPrice;
            }
            if (model.brandApplicationVisibilty != null && model.brandApplicationVisibilty.companiesListStatus)
            {
                model.companieList = _companiesService.GetCompanyList(_usersService.getUserInformation(_cookieService.getSessionEmail()).userId);
            }
            return(model);
        }
 BrandApplicationViewModel submitBrandApplication(BrandApplicationViewModel gettingModel)
 {
     if (gettingModel.applicationType == ApplicationTypesEnum.domestic && gettingModel.applicationCategoryType == ApplicationCategoryTypesEnum.brand && gettingModel.selectedBrandApplication == 1)
     { // burada marka başvurusu yurtiçi olan
         if (checkSaveBasketPossibilty(gettingModel))
         {
             if (_basketService.addBasket(gettingModel))
             {
                 ToastrService.AddToUserQueue(new Toastr("Talebiniz sepete eklenmiştir.", type: Model.Enums.ToastrType.Success));
                 BrandApplicationViewModel returnModel = getBrandAppStandartValues(gettingModel);
                 returnModel.saveStatus = BasketSaveStatusEnum.success;
                 return(returnModel);
             }
             else
             {
                 ToastrService.AddToUserQueue(new Toastr("Sepete Eklenirken bir hata gerçekleşti.", type: Model.Enums.ToastrType.Error));
                 return(getInformationForBrandApplicationTypeChoose(gettingModel));
             }
         }
         else
         {
             return(getInformationForBrandApplicationTypeChoose(gettingModel));
         }
     }
     else
     {
         return(null);
     }
 }
        BrandApplicationViewModel getInformationForBrandApplicationTypeChoose(BrandApplicationViewModel gettingModel)  // burada marka için yapılacak işlemin tipi seçildiğinde yapılacaklar
        {
            BrandApplicationViewModel model = gettingModel;

            model        = getBrandAppStandartValues(gettingModel);
            model.prices = _applicationPricesService.getPrices(model.selectedBrandApplication);//standart gelmesi gerek her zaman için
            model.brandApplicationVisibilty = _mapper.Map <BrandApplicationVisibilityViewModel>(_mainContext.brandApplicationVisiblities.Where(w => w.brandApplicationTypesId == gettingModel.selectedBrandApplication).FirstOrDefault());
            if (model.brandApplicationVisibilty != null && model.brandApplicationVisibilty.applicationClassStatus)
            { // burada eğer  sınıfların gelmesini istiyorsak listeyi çeker
                model.applicationClassList    = _brandApplicationClassesService.getApplicationClassList();
                model.applicationSubClassList = _brandApplicationClassesService.getApplicationSubClassList(model.subclassSearchText);
                if (model.subclassSearchText != null)
                {
                    model.applicationClassList = _brandApplicationClassesService.applicationClassFillWithSelecteds(model.applicationClassList, model.applicationSubClassList);
                    // model.prices.totalPrice = _applicationPricesService.brandApplicationTotalPrice(model);
                    double calculatedPrice = _applicationPricesService.brandApplicationTotalPrice(model);
                    model.prices.totalPrice = calculatedPrice;
                    if (model.applicationSubClassList.subList.Where(w => w.isSelected).Count() == 0)
                    {
                        ToastrService.AddToUserQueue(new Toastr("Aradığınız bilgilerde bir sınıf bulunamadı !", type: Model.Enums.ToastrType.Warning));
                    }
                }
            }
            if (model.brandApplicationVisibilty != null && model.brandApplicationVisibilty.companiesListStatus)
            {
                model.companieList = _companiesService.GetCompanyList(_usersService.getUserInformation(_cookieService.getSessionEmail()).userId);
            }
            return(model);
        }
        public IActionResult Create(BrandApplicationViewModel model)
        {
            BrandApplicationViewModel returnModel = _brandApplicationService.brandApplicationPost(model);

            if (returnModel.saveStatus == Model.Enums.BasketSaveStatusEnum.success)
            {
                return(Redirect("~/markalarim/yeni-basvur"));
            }
            ModelState.Clear();
            return(View(returnModel));
        }
 BrandApplicationViewModel getBrandAppStandartValues(BrandApplicationViewModel model)
 {
     model.brandApplicationVisibilty = new BrandApplicationVisibilityViewModel();
     model.ApplicationTypeList       = ((ApplicationTypesEnum[])Enum.GetValues(typeof(ApplicationTypesEnum))).Select(c => new SelectListItem()
     {
         Value = ((int)c).ToString(), Text = c.GetDescription()
     }).ToList();
     model.userInformation          = _usersService.getUserInformation(_cookieService.getSessionEmail());
     model.brandApplicationtypeList = _mainContext.brandApplicationTypes.Where(w => w.applicationType == model.applicationType && w.categoryType == ApplicationCategoryTypesEnum.brand).Select(s => new SelectListItem()
     {
         Text  = s.name,
         Value = s.id.ToString()
     }).ToList();
     return(model); // burası hep standart
 }
        public BrandApplicationViewModel getFirstInformationForApplication()
        {
            BrandApplicationViewModel model = new BrandApplicationViewModel();

            model.ApplicationTypeList = ((ApplicationTypesEnum[])Enum.GetValues(typeof(ApplicationTypesEnum))).Select(c => new SelectListItem()
            {
                Value = ((int)c).ToString(), Text = c.GetDescription()
            }).ToList();
            model.applicationType          = ApplicationTypesEnum.domestic;
            model.userInformation          = _usersService.getUserInformation(_cookieService.getSessionEmail());
            model.brandApplicationtypeList = _mainContext.brandApplicationTypes.Where(w => w.applicationType == ApplicationTypesEnum.domestic && w.categoryType == ApplicationCategoryTypesEnum.brand).Select(s => new SelectListItem()
            {
                Text  = s.name,
                Value = s.id.ToString()
            }).ToList();
            model.selectedBrandApplication = 0;
            return(model);
        }
        public double brandApplicationTotalPrice(BrandApplicationViewModel model) // marka başvuru total fiyat hesaplama
        {
            model.prices = getPrices(model.selectedBrandApplication);
            int totalSelectedClass = model.applicationClassList == null ? 0 : model.applicationClassList.applicationClassList.Where(w => w.isSelected).Count();

            double total = 0;

            if (totalSelectedClass > 0)
            {
                if (totalSelectedClass > 1)
                {
                    total = (model.prices.tuition * totalSelectedClass) + model.prices.service + (model.prices.extraClassService * totalSelectedClass);
                }
                else
                {
                    total = model.prices.tuition + model.prices.service;
                }
                total = (total * 118) / 100;
            }
            return(total);
        }
        public bool checkSaveBasketPossibilty(BrandApplicationViewModel Checkmodel)
        {
            bool result = true;

            Checkmodel.brandApplicationVisibilty = _mapper.Map <BrandApplicationVisibilityViewModel>(_mainContext.brandApplicationVisiblities.Where(w => w.brandApplicationTypesId == Checkmodel.selectedBrandApplication).FirstOrDefault());
            if (Checkmodel.brandApplicationVisibilty.applicationClassStatus)
            {
                if (!(Checkmodel.applicationClassList.applicationClassList.Where(w => w.isSelected).Count() > 0 &&
                      Checkmodel.applicationSubClassList.subList.Where(w => w.isSelected).Count() > 0))
                {
                    ToastrService.AddToUserQueue(new Toastr("Lütfen en az 1 sınıf seçiniz.", type: Model.Enums.ToastrType.Error));
                    result = false;
                }
            }
            if (Checkmodel.brandApplicationVisibilty.brandExplanationStatus)
            {
                if (Checkmodel.explanation == "" || Checkmodel.explanation == null)
                {
                    ToastrService.AddToUserQueue(new Toastr("Lütfen açıklama alanını doldurunuz.", type: Model.Enums.ToastrType.Error));
                    result = false;
                }
            }
            if (Checkmodel.brandApplicationVisibilty.brandNameStatus)
            {
                if (Checkmodel.brandName == "" || Checkmodel.brandName == null)
                {
                    ToastrService.AddToUserQueue(new Toastr("Lütfen marka adını doldurunuz.", type: Model.Enums.ToastrType.Error));
                    result = false;
                }
            }
            if (Checkmodel.brandApplicationVisibilty.companiesListStatus)
            {
                if (Checkmodel.selectedCompany == null || Checkmodel.selectedCompany.Count() == 0)
                {
                    ToastrService.AddToUserQueue(new Toastr("Lütfen en az 1 adet firma seçiniz.", type: Model.Enums.ToastrType.Error));
                    result = false;
                }
            }
            return(result);
        }
        public BrandApplicationViewModel brandApplicationPost(BrandApplicationViewModel model) // herşey burda başlıyor
        {
            if (model.processToken == SubmitTokenEnum.applicationType)                         // yurtiçi yurtdışı seçtiyse
            {
                return(getInformationForApplicationTypeChoose(model));
            }
            else if (model.processToken == SubmitTokenEnum.brandApplicationType) // işlem seçildiğinde
            {
                return(getInformationForBrandApplicationTypeChoose(model));
            }
            else if (model.processToken == SubmitTokenEnum.classSearchType) // işlem marka başvurusu && arama yap dediyse
            {
                model.applicationClassList    = new ApplicationClassListViewModel();
                model.applicationSubClassList = new ApplicationSubClassListViewModel();
                // returnModel.prices.totalPrice = _applicationPricesService.brandApplicationTotalPrice(model);
                return(getInformationForBrandApplicationTypeChoose(model));
            }
            else if (model.processToken == SubmitTokenEnum.companyAddType) // firma ekled
            {
                if (_companiesService.createCompany(model.createCompany))
                {
                    model.createCompany = new CompaniesViewModel();
                }
                BrandApplicationViewModel returnModel = getInformationForCreateCompanyChoose(model);
                return(returnModel);
            }
            else if (model.processToken == SubmitTokenEnum.submit)
            {
                return(submitBrandApplication(model));
            }

            else
            {
                return(null);
            }
        }
 BrandApplicationViewModel getInformationForApplicationTypeChoose(BrandApplicationViewModel gettingModel) // burada yurtiçi yurtdışı application type seçmesi durumunda
 {
     return(getBrandAppStandartValues(gettingModel));                                                     // burası hep standart
 }
        public IActionResult Create()
        {
            BrandApplicationViewModel model = _brandApplicationService.getFirstInformationForApplication();

            return(View(model));
        }