Пример #1
0
        public async Task <ActionResult> Create(SliderViewModel model, string savecontinue)
        {
            if (ModelState.IsValid)
            {
                bool continueEditing = false;
                if (!String.IsNullOrWhiteSpace(savecontinue))
                {
                    continueEditing = true;
                }

                //Slider
                Slider sliderModel = new Slider();
                sliderModel = SliderMapping.ViewToModel(model);

                TEBApiResponse apiResponse = await Post <Slider>("/Slider/InsertSlider", sliderModel);

                if (apiResponse.IsSuccess)
                {
                    if (continueEditing)
                    {
                        int productid = JsonConvert.DeserializeObject <int>(Convert.ToString(apiResponse.Data));
                        return(RedirectToAction("Edit", new { id = productid }));
                    }
                    return(RedirectToAction("Index"));
                }
            }

            return(View(model));
        }
Пример #2
0
        /// <summary>
        /// post method request to api
        /// </summary>
        /// <param name="url">relative url of the resource</param>
        /// <param name="formdata">generic form data to post</param>
        /// <returns>NECApiResponse</returns>
        protected virtual async Task <TEBApiResponse> Post <T>(string url, T formdata)
        {
            if (formdata == null)
            {
                throw new ArgumentException("cannot create post request without formdata");
            }

            var apiResponse = new TEBApiResponse(false, "Unable to connect to api");

            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri(apival);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                SetClientAuthentication(client);

                HttpResponseMessage response = await client.PostAsJsonAsync("api" + url, formdata);

                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    HttpContext.Response.RedirectToRoute("login");
                }

                if (response.IsSuccessStatusCode)
                {
                    apiResponse = await response.Content.ReadAsAsync <TEBApiResponse>();
                }

                return(apiResponse);
            }
        }
        public async Task <ActionResult> CategoryList(DataSourceRequest command, CategoryListModel model)
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageCategories))
            //    return AccessDeniedKendoGridJson();

            CategoryViewModel categoryViewModel = new CategoryViewModel();

            model.Page     = command.Page - 1;
            model.PageSize = command.PageSize;

            TEBApiResponse apiResponse = await Post <CategoryListModel>("/Category/CategoryList", model);

            if (apiResponse.IsSuccess)
            {
                List <Category>      listCategories = JsonConvert.DeserializeObject <List <Category> >(Convert.ToString(apiResponse.Data));
                PagedList <Category> categories     = new PagedList <Category>(listCategories, 0, 10);

                var gridModel = new DataSourceResult();
                gridModel.Data = listCategories.Select(x =>
                {
                    var categoryModel = CategoryMapping.ModelToView(x);
                    return(categoryModel);
                });
                gridModel.Total = categories.TotalCount;
                return(Json(gridModel));
            }
            return(Json(0));
        }
        public async Task <ActionResult> Create(CategoryViewModel model, string savecontinue)
        {
            if (ModelState.IsValid)
            {
                bool continueEditing = false;
                if (!String.IsNullOrWhiteSpace(savecontinue))
                {
                    continueEditing = true;
                }
                Category objcategory = new Core.Domain.Category();
                objcategory = CategoryMapping.ViewToModel(model);
                TEBApiResponse apiResponse = await Post <Category>("/Category/InsertCategory", objcategory);

                if (apiResponse.IsSuccess)
                {
                    if (continueEditing)
                    {
                        //selected tab
                        //SaveSelectedTabName();
                        int categoryid = JsonConvert.DeserializeObject <int>(Convert.ToString(apiResponse.Data));
                        return(RedirectToAction("Edit", new { id = categoryid }));
                    }
                    return(RedirectToAction("Category"));
                }
            }
            return(View(model));
        }
Пример #5
0
        /// <summary>
        /// get method request to api
        /// </summary>
        /// <param name="url">relative url of the resource</param>
        public async Task <TEBApiResponse> Get(string url)
        {
            var apiResponse = new TEBApiResponse(false, "Unable to connect to api");

            using (HttpClient client = new HttpClient())
            {
                client.BaseAddress = new Uri(apival);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                SetClientAuthentication(client);

                HttpResponseMessage response = await client.GetAsync("api" + url);

                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                {
                    HttpContext.Response.RedirectToRoute("login");
                }

                if (response.IsSuccessStatusCode)
                {
                    apiResponse = await response.Content.ReadAsAsync <TEBApiResponse>();
                }

                return(apiResponse);
            }
        }
Пример #6
0
        public async Task <ActionResult> Edit(int id)
        {
            SliderViewModel model       = new SliderViewModel();
            TEBApiResponse  apiResponse = await Get("/Slider/GetSliderById?Id=" + id);

            if (apiResponse.IsSuccess)
            {
                Slider slider = JsonConvert.DeserializeObject <Slider>(Convert.ToString(apiResponse.Data));
                model = SliderMapping.ModelToView(slider);
            }
            return(View(model));
        }
        public async Task <ActionResult> Edit(int id)
        {
            CategoryViewModel model       = new CategoryViewModel();
            TEBApiResponse    apiResponse = await Get("/Category/GetCategoryById?Id=" + id);

            if (apiResponse.IsSuccess)
            {
                Category product = JsonConvert.DeserializeObject <Category>(Convert.ToString(apiResponse.Data));
                model = CategoryMapping.ModelToView(product);
            }
            return(View(model));
        }
        // GET: Admin/SpecificationAttribute
        public async Task <ActionResult> GetOptionsByAttributeId(string attributeId)
        {
            if (String.IsNullOrEmpty(attributeId))
            {
                throw new ArgumentNullException("attributeId");
            }

            TEBApiResponse apiResponse = await Get("/SpecificationAttribute/GetSpecificationAttributeOptionsBySpecificationAttribute?specificationAttributeId=" + Convert.ToInt32(attributeId));

            if (apiResponse.IsSuccess)
            {
                List <SpecificationAttributeOption> list = JsonConvert.DeserializeObject <List <SpecificationAttributeOption> >(Convert.ToString(apiResponse.Data));
                var result = (from o in list
                              select new { id = o.Id, name = o.Name }).ToList();
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            return(View());
        }
Пример #9
0
        public async Task <ActionResult> Edit(ProductViewModel model, string savecontinue)
        {
            if (ModelState.IsValid)
            {
                bool continueEditing = false;
                if (!String.IsNullOrWhiteSpace(savecontinue))
                {
                    continueEditing = true;
                }

                //basic setting
                //this will be removed
                DefaultValues(model);

                //product
                Product product = new Product();
                product = ProductMapping.ViewToModel(model);

                TEBApiResponse apiResponse = await Post <Product>("/Product/UpdateProduct", product);

                if (apiResponse.IsSuccess)
                {
                    if (continueEditing)
                    {
                        //selected tab
                        //SaveSelectedTabName();
                        int productid = JsonConvert.DeserializeObject <int>(Convert.ToString(apiResponse.Data));
                        return(RedirectToAction("Edit", new { id = productid }));
                    }
                    return(RedirectToAction("Index"));
                }
            }
            //If we got this far, something failed, redisplay form
            PrepareProductModel(model, null, false, true);
            //PrepareAclModel(model, null, true);
            //PrepareStoresMappingModel(model, null, true);
            //PrepareCategoryMappingModel(model, null, true);
            //PrepareManufacturerMappingModel(model, null, true);
            //PrepareDiscountMappingModel(model, null, true);

            return(View(model));
        }
        public async Task <ActionResult> Create(CustomerViewModel model)
        {
            model.Username = model.FirstName + model.LastName;
            if (!String.IsNullOrWhiteSpace(model.Email))
            {
                TEBApiResponse apiResponse1 = await Get("/Customer/GetCustomerByEmail?email=" + model.Email.Trim());

                if (apiResponse1.Data != null)
                {
                    ModelState.AddModelError("", "Email is already registered");
                }
            }
            if (!String.IsNullOrWhiteSpace(model.Username))
            {
                TEBApiResponse apiResponse2 = await Get("/Customer/GetCustomerByUsername?userName="******"", "Username is already registered");
                }
            }

            if (ModelState.IsValid)
            {
                Customer customer = new Customer();
                customer = CustomerMapping.ViewToModel(model);
                if (model.Id == 0)
                {
                    TEBApiResponse apiResponse = await Post <Customer>("/Customer/InsertCustomer", customer);

                    model.Id = Convert.ToInt32(apiResponse.Data.ToString());
                }
                else
                {
                    TEBApiResponse apiResponse = await Post <Customer>("/Customer/UpdateCustomer", customer);

                    model.Id = 0;
                }
            }

            return(View(model));
        }
Пример #11
0
        public async Task <ActionResult> Edit(int id)
        {
            ProductViewModel model       = new ProductViewModel();
            TEBApiResponse   apiResponse = await Get("/Product/GetProductById?Id=" + id);

            if (apiResponse.IsSuccess)
            {
                Product product = JsonConvert.DeserializeObject <Product>(Convert.ToString(apiResponse.Data));
                model = ProductMapping.ModelToView(product);
            }

            if (model != null)
            {
                TEBApiResponse apiResponses = await Get("/SpecificationAttribute/GetSpecificationAttributes");

                if (apiResponses.IsSuccess)
                {
                    List <SpecificationAttribute> list = JsonConvert.DeserializeObject <List <SpecificationAttribute> >(Convert.ToString(apiResponses.Data));

                    model.AddSpecificationAttributeModel.AvailableAttributes = list.Select(x => new SelectListItem
                    {
                        Text  = x.Name,
                        Value = x.Id.ToString()
                    }).ToList();
                }
            }


            PrepareProductModel(model, null, false, false);
            //AddLocales(_languageService, model.Locales);
            //PrepareAclModel(model, null, false);
            //PrepareStoresMappingModel(model, null, false);
            //PrepareCategoryMappingModel(model, null, false);
            //PrepareManufacturerMappingModel(model, null, false);
            //PrepareDiscountMappingModel(model, null, false);
            return(View(model));
        }
Пример #12
0
        public async Task <ActionResult> Delete(int id)
        {
            TEBApiResponse apiResponse = await Delete("/Product/DeleteProduct?Id=" + id);

            return(RedirectToAction("Index"));
        }
Пример #13
0
        public async Task <ActionResult> Create(ProductViewModel model, string savecontinue)
        {
            if (ModelState.IsValid)
            {
                bool continueEditing = false;
                if (!String.IsNullOrWhiteSpace(savecontinue))
                {
                    continueEditing = true;
                }

                //basic setting
                //this will be removed
                DefaultValues(model);

                //product
                Product product = new Product();
                product = ProductMapping.ViewToModel(model);

                TEBApiResponse apiResponse = await Post <Product>("/Product/InsertProduct", product);

                ////search engine name
                //model.SeName = product.ValidateSeName(model.SeName, product.Name, true);
                //_urlRecordService.SaveSlug(product, model.SeName, 0);
                ////locales
                //UpdateLocales(product, model);
                //categories
                //SaveCategoryMappings(product, model);
                //manufacturers
                //SaveManufacturerMappings(product, model);
                ////ACL (customer roles)
                //SaveProductAcl(product, model);
                ////stores
                //SaveStoreMappings(product, model);
                ////discounts
                //SaveDiscountMappings(product, model);
                //tags
                //_productTagService.UpdateProductTags(product, ParseProductTags(model.ProductTags));
                ////warehouses
                //SaveProductWarehouseInventory(product, model);

                ////quantity change history
                //_productService.AddStockQuantityHistoryEntry(product, product.StockQuantity, product.StockQuantity, product.WarehouseId,
                //    _localizationService.GetResource("Admin.StockQuantityHistory.Messages.Edit"));

                ////activity log
                //_customerActivityService.InsertActivity("AddNewProduct", _localizationService.GetResource("ActivityLog.AddNewProduct"), product.Name);

                //SuccessNotification(_localizationService.GetResource("Admin.Catalog.Products.Added"));

                if (apiResponse.IsSuccess)
                {
                    if (continueEditing)
                    {
                        //selected tab
                        //SaveSelectedTabName();
                        int productid = JsonConvert.DeserializeObject <int>(Convert.ToString(apiResponse.Data));
                        return(RedirectToAction("Edit", new { id = productid }));
                    }
                    return(RedirectToAction("Index"));
                }
            }

            //If we got this far, something failed, redisplay form
            PrepareProductModel(model, null, false, true);
            //PrepareAclModel(model, null, true);
            //PrepareStoresMappingModel(model, null, true);
            //PrepareCategoryMappingModel(model, null, true);
            //PrepareManufacturerMappingModel(model, null, true);
            //PrepareDiscountMappingModel(model, null, true);

            return(View(model));
        }
        //[HttpPost]
        //public async Task<ActionResult> Edit(CustomerViewModel model)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        //Customer
        //        Customer customer = new Customer();
        //        customer = CustomerMapping.ViewToModel(model);

        //        TEBApiResponse apiResponse = await Post<Customer>("/Customer/UpdateCustomer", customer);
        //        if (apiResponse.IsSuccess)
        //        {
        //            return RedirectToAction("Index");
        //        }
        //    }
        //    return View(model);
        //}

        public async Task <ActionResult> Delete(int id)
        {
            TEBApiResponse apiResponse = await Delete("/Customer/DeleteCustomer?Id=" + id);

            return(RedirectToAction("create"));
        }
Пример #15
0
        public async Task <ActionResult> GetSlidersList()
        {
            TEBApiResponse apiResponse = await Delete("/Slider/GetSlidersList");

            return(RedirectToAction("Index"));
        }
Пример #16
0
        public async Task <ActionResult> ProductSpecAttrList(DataSourceRequest command, int productId)
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            //    return AccessDeniedKendoGridJson();
            TEBApiResponse apiResponse = await Get("/Product/GetProductSpecificationAttributes?productId=" + productId);

            if (apiResponse.IsSuccess)
            {
                List <Product_SpecificationAttribute_Mapping> productSpecificationAttribute = JsonConvert.DeserializeObject <List <Product_SpecificationAttribute_Mapping> >(Convert.ToString(apiResponse.Data));
                var productrSpecsModel = productSpecificationAttribute
                                         .Select(x =>
                {
                    var psaModel = new Product_SpecificationAttribute_MappingViewModel
                    {
                        Id = x.Id,
                        AttributeTypeId = x.AttributeTypeId,
                        // AttributeTypeName = ,
                        //AttributeId = x.SpecificationAttributeOption.SpecificationAttribute.Id,
                        //AttributeName = x.SpecificationAttributeOption.SpecificationAttribute.Name,
                        AllowFiltering    = x.AllowFiltering,
                        ShowOnProductPage = x.ShowOnProductPage,
                        DisplayOrder      = x.DisplayOrder
                    };
                    SpecificationAttributeType AttributeType = ((SpecificationAttributeType)x.AttributeTypeId);

                    switch (AttributeType)
                    {
                    case SpecificationAttributeType.Option:
                        psaModel.ValueRaw = HttpUtility.HtmlEncode(Enum.Parse(typeof(SpecificationAttributeOption), x.SpecificationAttributeOptionId.ToString()));
                        psaModel.SpecificationAttributeOptionId = x.SpecificationAttributeOptionId;
                        break;

                    case SpecificationAttributeType.CustomText:
                        psaModel.ValueRaw = HttpUtility.HtmlEncode(x.CustomValue);
                        break;

                    case SpecificationAttributeType.CustomHtmlText:
                        //do not encode?
                        //psaModel.ValueRaw = x.CustomValue;
                        psaModel.ValueRaw = HttpUtility.HtmlEncode(x.CustomValue);
                        break;

                    case SpecificationAttributeType.Hyperlink:
                        psaModel.ValueRaw = x.CustomValue;
                        break;

                    default:
                        break;
                    }
                    return(psaModel);
                })
                                         .ToList();

                var gridModel = new DataSourceResult
                {
                    Data  = productrSpecsModel,
                    Total = productrSpecsModel.Count
                };
                return(Json(gridModel));
            }

            return(Json(0));
        }
 public BaseApiController()
 {
     tebResponse = new TEBApiResponse();
 }
Пример #18
0
        public async Task <ActionResult> ProductList(DataSourceRequest command, ProductSearchViewModel model)
        {
            var categoryIds = model.SearchCategoryId > 0 ? new List <int> {
                model.SearchCategoryId
            } : null;
            ////include subcategories
            //if (model.SearchIncludeSubCategories && model.SearchCategoryId > 0)
            //    categoryIds.AddRange(GetChildCategoryIds(model.SearchCategoryId));

            bool?overridePublished = null;

            if (model.SearchPublishedId == 1)
            {
                overridePublished = true;
            }
            else if (model.SearchPublishedId == 2)
            {
                overridePublished = false;
            }

            SearchProductModel searchmodel = new SearchProductModel
            {
                categoryIds       = categoryIds,
                manufacturerId    = model.SearchManufacturerId,
                storeId           = model.SearchStoreId,
                vendorId          = model.SearchVendorId,
                warehouseId       = model.SearchWarehouseId,
                productType       = model.SearchProductTypeId > 0 ? (ProductType?)model.SearchProductTypeId : null,
                keywords          = model.SearchProductName,
                pageIndex         = command.Page - 1,
                pageSize          = command.PageSize,
                showHidden        = true,
                overridePublished = overridePublished
            };
            TEBApiResponse apiResponse = await Post <SearchProductModel>("/Product/SearchProducts", searchmodel);

            if (apiResponse.IsSuccess)
            {
                try
                {
                    List <Product>      listproducts = JsonConvert.DeserializeObject <List <Product> >(Convert.ToString(apiResponse.Data));
                    PagedList <Product> products     = new PagedList <Product>(listproducts, 0, 10);
                    var gridModel = new DataSourceResult();
                    gridModel.Data = products.Select(x =>
                    {
                        var productModel = ProductMapping.ModelToView(x); // x.ToModel();
                                                                          //little performance optimization: ensure that "FullDescription" is not returned
                        productModel.FullDescription = "";

                        ////picture
                        //var defaultProductPicture = _pictureService.GetPicturesByProductId(x.Id, 1).FirstOrDefault();
                        //productModel.PictureThumbnailUrl = _pictureService.GetPictureUrl(defaultProductPicture, 75, true);
                        ////product type
                        //productModel.ProductTypeName = x.ProductType.GetLocalizedEnum(_localizationService, _workContext);
                        ////friendly stock qantity
                        ////if a simple product AND "manage inventory" is "Track inventory", then display
                        //if (x.ProductType == ProductType.SimpleProduct && x.ManageInventoryMethod == ManageInventoryMethod.ManageStock)
                        //    productModel.StockQuantityStr = x.GetTotalStockQuantity().ToString();

                        return(productModel);
                    });
                    gridModel.Total = products.TotalCount;

                    return(Json(gridModel));
                }
                catch (Exception ex)
                {
                    throw;
                }
            }
            return(Json(0));
        }
        public async Task <ActionResult> Delete(int id)
        {
            TEBApiResponse apiResponse = await Delete("/Category/DeleteCategory?Id=" + id);

            return(RedirectToAction("Category"));
        }