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)); }
/// <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)); }
/// <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); } }
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()); }
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)); }
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)); }
public async Task <ActionResult> Delete(int id) { TEBApiResponse apiResponse = await Delete("/Product/DeleteProduct?Id=" + id); return(RedirectToAction("Index")); }
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")); }
public async Task <ActionResult> GetSlidersList() { TEBApiResponse apiResponse = await Delete("/Slider/GetSlidersList"); return(RedirectToAction("Index")); }
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(); }
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")); }