protected TResponse CreateServiceResponse <TResponse>(BaseWebServiceResponse webResponse) where TResponse : ResponseBase, new() { TResponse response = new TResponse(); if (webResponse == null) { response.Success = false; response.Message = "Unknown Error!"; response.ErrorCode = "Error_1"; response.errorName = "Error in the returned structure from web service"; response.LogId = "0"; } else { response.Success = webResponse.statusId == "1"; response.Error = webResponse.error; response.LogId = webResponse.logId; response.errorName = webResponse.errorName; response.recordId = webResponse.recordId; response.Summary = webResponse.Details; if (!string.IsNullOrEmpty(webResponse.statusId)) { response.ErrorCode = "Error_" + webResponse.statusId.Substring(1); } if (webResponse.statusId.Substring(1) == null || webResponse.statusId == "0") { response.ErrorCode = "Error_1"; response.Summary = "Unknown Error!"; response.LogId = "0"; response.errorName = "Error in the returned structure from web service"; } } return(response); }
public BaseWebServiceResponse Update(EditUserViewModel model) { var response = new BaseWebServiceResponse { Error = _userValidationService.ValidateUserDateOfBirth( int.Parse(model.DateOfBirthDay), int.Parse(model.DateOfBirthMonth), int.Parse(model.DateOfBirthYear)) }; if (!string.IsNullOrEmpty(model.Password)) { response.Error = _userValidationService.ValidatePassword(model.Password, model.ConfirmPassword); if (response.Error != null) { return(response); } } var userDto = mapper.Map <EditUserViewModel, UserDTO>(model); response.ActionSuccessful = _userService.Update(userDto); response.SuccessMessage = response.ActionSuccessful ? "User successfully updated" : string.Empty; return(response); }
/// <summary> /// Initializes the ActionResponse with the response parameter object /// </summary> /// <param name="response"></param> public AddProductViewModel(BaseWebServiceResponse response) { ActionResponse = response; Brands = new List <SelectListItem>(); Categories = new List <SelectListItem>(); Genders = new List <SelectListItem>(); ProductTypes = new List <SelectListItem>(); }
/// <summary> /// Initializes the ActionResponse with the response parameter object /// </summary> /// <param name="response"></param> public EditProductViewModel(BaseWebServiceResponse response) { ActionResponse = response; Brands = new List <SelectListItem>(); Categories = new List <SelectListItem>(); Genders = new List <SelectListItem>(); ProductTypes = new List <SelectListItem>(); ImagesSrc = new List <string>(); }
public BaseWebServiceResponse Add(AddUserViewModel model) { var response = new BaseWebServiceResponse() { Error = _userValidationService.ValidateUserDateOfBirth( int.Parse(model.DateOfBirthDay), int.Parse(model.DateOfBirthMonth), int.Parse(model.DateOfBirthYear)) }; if (response.Error != null) { return(response); } if (_userValidationService.IsEmailInUse(model.Email)) { response.Error = new ErrorServiceViewModel() { Name = "Email", Message = "Email is already in use." }; return(response); } response.Error = _userValidationService.ValidatePassword(model.Password, model.ConfirmPassword); var newUser = _userService.Create( new UserDTO() { Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DateOfBirth = new DateTime( Convert.ToInt32(model.DateOfBirthYear), Convert.ToInt32(model.DateOfBirthMonth), Convert.ToInt32(model.DateOfBirthDay)), IsSubscribed = model.IsSubscribed, Password = model.Password }); if (newUser == null || newUser.Id == 0) { _userService.TryRollbackUser(newUser); response.Error = new ErrorServiceViewModel() { Name = "User", Message = "There was a problem creating the user. Please try again or contact support." }; //TODO: Create logging service at Service layer and log error return(response); } response.ActionSuccessful = true; return(response); }
public IActionResult Delete(BrandViewModel model) { BaseWebServiceResponse response = _brandWebService.Delete(model.Id); TempData[BrandActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return View($"{BrandsViewFolder}/Index.cshtml", model); } return RedirectToAction("Index", "Brands"); }
public IActionResult Delete(CategoryItemViewModel model) { BaseWebServiceResponse response = _categoryWebService.Delete(model.Id); TempData[CategoryActionName] = response; if (!response.ActionSuccessful) { return(View($"{CategoryActionName}/Index.cshtml", model)); } return(RedirectToAction("Index", "Categories")); }
public IActionResult Delete(RoleViewModel model) { BaseWebServiceResponse response = _roleWebService.Delete(model.Id); TempData[RolesViewFolder] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return(View($"{RolesViewFolder}/Index.cshtml", model)); } return(RedirectToAction("Index", "Roles")); }
public IActionResult Delete(ProductsViewModel model) { BaseWebServiceResponse response = _productWebService.Delete(model.Id); TempData[ProductActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return(View($"{ProductsViewFolder}/Index.cshtml", model)); } return(RedirectToAction("Index", "products")); }
protected TResponse CreateServiceResponse <TResponse>(BaseWebServiceResponse webResponse) where TResponse : ResponseBase, new() { TResponse response = new TResponse(); if (webResponse == null) { response.Success = false; response.Message = "Unknown Error!"; } else { response.Success = webResponse.statusId == "1"; response.Summary = webResponse.Details; } return(response); }
public IActionResult AddBrand(AddBrandViewModel model) { if (!ModelState.IsValid) { return View($"{BrandsViewFolder}/Add.cshtml", model); } BaseWebServiceResponse response = _brandWebService.Add(model); TempData[BrandActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { model.ActionResponse = response; return View($"{BrandsViewFolder}/Add.cshtml", model); } return RedirectToAction("Index", "Brands"); }
public IActionResult Update(EditBrandViewModel model) { if (!ModelState.IsValid) { model = _brandWebService.GetBrandById(model.Id); return View($"{BrandsViewFolder}/Edit.cshtml", model); } BaseWebServiceResponse response = _brandWebService.Update(model); TempData[BrandActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return View($"{BrandsViewFolder}/Index.cshtml", model); } return RedirectToAction("Index", "Brands"); }
public IActionResult Update(EditProductViewModel model) { if (!ModelState.IsValid) { model = _productWebService.GetEditProductById(model.Id); return(View($"{ProductsViewFolder}/Edit/{model.Id}", model)); } BaseWebServiceResponse response = _productWebService.Update(model); TempData[ProductActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return(View($"{ProductsViewFolder}/Edit.cshtml", model)); } return(RedirectToAction("Index", "Products")); }
public IActionResult Update(EditUserViewModel model) { if (!ModelState.IsValid) { model = _userWebService.GetEditUserModel(model.Id); return(View($"{UsersViewFolder}/Edit.cshtml", model)); } BaseWebServiceResponse response = _userWebService.Update(model); TempData[UserActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { return(View($"{UsersViewFolder}/Edit.cshtml", model)); } return(RedirectToAction("Index", "Users")); }
public IActionResult AddCategory(AddCategoryViewModel model) { if (!ModelState.IsValid) { return(View($"{CategoriesViewFolder}/Add.cshtml", model)); } BaseWebServiceResponse response = _categoryWebService.Add(model); TempData[CategoryActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { model.ActionResponse = response; return(View($"{CategoriesViewFolder}/Add.cshtml", model)); } return(RedirectToAction("Index", "Categories")); }
public IActionResult AddProduct(AddProductViewModel model) { if (!ModelState.IsValid) { model = _productWebService.GetAddProductsContent(model); return(View($"{ProductsViewFolder}/Add.cshtml", model)); } BaseWebServiceResponse response = _productWebService.Add(model); TempData[ProductActionName] = JsonConvert.SerializeObject(response); if (!response.ActionSuccessful) { model.ActionResponse = response; return(View($"{ProductsViewFolder}/Add.cshtml", model)); } return(RedirectToAction("Index", "Products")); }
public BaseWebServiceResponse Update(EditRoleViewModel model) { var roleDto = mapper.Map <EditRoleViewModel, RoleDTO>(model); var roleNameExists = _roleService.RoleNameExists(roleDto); var response = new BaseWebServiceResponse { ActionSuccessful = !roleNameExists, Error = roleNameExists ? new ErrorServiceViewModel() { Name = "Role Name", Message = "Role Name is already in use." } : null }; if (response.Error != null) { return(response); } var roleAdded = _roleService.Update(roleDto); if (!roleAdded) { response.ActionSuccessful = false; response.Error = roleAdded ? null : new ErrorServiceViewModel() { Name = "Role", Message = "There was a problem updating the Role. We have been notified of the error but please try again." }; } response.SuccessMessage = "Role updated successfully!"; response.ActionSuccessful = true; return(response); }
public BaseWebServiceResponse Add(AddCategoryViewModel model) { var categoryDto = mapper.Map <AddCategoryViewModel, CategoryDTO>(model); var categoryExists = _categoryService.CategoryExists(categoryDto); var response = new BaseWebServiceResponse { ActionSuccessful = !categoryExists, Error = categoryExists ? new ErrorServiceViewModel() { Name = "Category Name", Message = "Category Name is already in use." } : null }; if (response.Error != null) { return(response); } var categoryAdded = _categoryService.Add(categoryDto); if (!categoryAdded) { response.ActionSuccessful = false; response.Error = categoryAdded ? null : new ErrorServiceViewModel() { Name = "Category", Message = "There was a problem adding the Category. We have been notified of the error but please try again." }; } response.ActionSuccessful = true; response.SuccessMessage = "Category added successfully!"; return(response); }
public BaseWebServiceResponse Update(EditBrandViewModel model) { var brandDto = mapper.Map <EditBrandViewModel, BrandDTO>(model); var brandNameExists = _brandService.BrandNameExists(brandDto); var response = new BaseWebServiceResponse { ActionSuccessful = brandNameExists, Error = brandNameExists ? null : new ErrorServiceViewModel() { Name = "Brand Name", Message = "Brand Name is already in use." } }; if (response.Error != null) { return(response); } var brandAdded = _brandService.Update(brandDto); if (!brandAdded) { response.ActionSuccessful = false; response.Error = brandNameExists ? null : new ErrorServiceViewModel() { Name = "Brand", Message = "There was a problem updating the Brand. We have been notified of the error but please try again." }; } response.ActionSuccessful = true; response.SuccessMessage = "Brand successfully updated"; return(response); }
public IActionResult Register(RegisterViewModel model) { BuildBaseModel(model); model.TopMenuItems = _menuWebService.GetSubMenuItems(); if (!ModelState.IsValid) { return(View("Index", model)); } BaseWebServiceResponse response = _userWebService.Register(model); if (!response.ActionSuccessful) { ModelState.AddModelError(response.Error.Name, response.Error.Message); return(View("Index", model)); } UpdateUserSession(JsonConvert.DeserializeObject <UserViewModel>(response.JsonResponseObject)); BuildBaseModel(model); TempData["NewUser"] = "******"; return(RedirectToAction("Index", "Home")); }
public BaseWebServiceResponse Delete(int userId) { var isUserDeleted = _userService.Delete(userId); var response = new BaseWebServiceResponse { ActionSuccessful = isUserDeleted, SuccessMessage = isUserDeleted ? "User Deleted!" : string.Empty, Error = isUserDeleted ? null : new ErrorServiceViewModel() { Name = "UserAction", Message = isUserDeleted ? string.Empty : "There was a problem deleting the user!" } }; return(response); }
public BaseWebServiceResponse Delete(int categoryId) { var categoryHasProducts = _categoryService.CategoryHasProducts(categoryId); var response = new BaseWebServiceResponse() { ActionSuccessful = !categoryHasProducts, Error = categoryHasProducts ? new ErrorServiceViewModel() { Name = "Category", Message = "This category is currently linked to active products, please ensure no products are associated with the category before deletion." } : null }; if (categoryHasProducts) { return(response); } var isCategoryDeleted = _categoryService.Delete(categoryId); response.ActionSuccessful = isCategoryDeleted; response.SuccessMessage = isCategoryDeleted ? "Category Deleted!" : string.Empty; response.Error = isCategoryDeleted ? null : new ErrorServiceViewModel { Name = "Category", Message = "There was an issue deleting the category. We have been notified of the error but please try again." }; return(response); }
public BaseWebServiceResponse Delete(int brandId) { var brandHasProducts = _brandService.BrandHasProducts(brandId); var response = new BaseWebServiceResponse() { ActionSuccessful = !brandHasProducts, Error = brandHasProducts ? new ErrorServiceViewModel() { Name = "Brand", Message = "This brand is currently linked to active products, please ensure no products are associated with the brand before deletion." } : null }; if (brandHasProducts) { return(response); } var isBrandDeleted = _brandService.Delete(brandId); response.ActionSuccessful = isBrandDeleted; response.SuccessMessage = isBrandDeleted ? "Brand Deleted!" : string.Empty; response.Error = isBrandDeleted ? null : new ErrorServiceViewModel { Name = "Brand", Message = "There was an issue deleting the brand. We have been notified of the error but please try again." }; return(response); }
public BaseWebServiceResponse Delete(int roleId) { var roleHasUsers = _roleService.RoleHasUsers(roleId); var response = new BaseWebServiceResponse() { ActionSuccessful = !roleHasUsers, Error = roleHasUsers ? new ErrorServiceViewModel() { Name = "Role", Message = "This role is currently linked to active users, please ensure no products are associated with the brand before deletion." } : null }; if (roleHasUsers) { return(response); } var isRoleDeleted = _roleService.Delete(roleId); response.ActionSuccessful = isRoleDeleted; response.SuccessMessage = isRoleDeleted ? "Role Deleted!" : string.Empty; response.Error = isRoleDeleted ? null : new ErrorServiceViewModel { Name = "Role", Message = "There was an issue deleting the role. We have been notified of the error but please try again." }; return(response); }
public BaseWebServiceResponse Update(EditProductViewModel model) { var response = new BaseWebServiceResponse(); //TODO: Refactor this - Move this check to a new service => ProductValidationService? if (_productService.ProductNameExists(model.ProductName, model.Id)) { response.Error.Name = "Product Name"; response.Error.Message = "Product Name exists"; return(response); } decimal price; if (!decimal.TryParse(model.Price, out price)) { response.ActionSuccessful = false; response.Error.Name = "Price"; response.Error.Message = "Price must be a decimal value e.g. 100.00"; return(response); } List <IFormFile> listFiles = new List <IFormFile>() { model.Image1, model.Image2, model.Image3, model.Image4, }; var productDto = mapper.Map <EditProductViewModel, ProductDTO>(model); bool fileExists = _fileValidationWebService.FileExists(listFiles); if (fileExists) { bool filesAreJpg = _fileValidationWebService.IsFileFormatJpg(listFiles); if (!filesAreJpg) { response.Error.Name = "Images"; response.Error.Message = "Files must be jpg file format."; return(response); } } else { //TODO: Refactor this => Duplicated below productDto.Images.Add(new ProductImageDTO() { Image = model.ImagesBytes[0] }); productDto.Images.Add(new ProductImageDTO() { Image = model.ImagesBytes[1] }); productDto.Images.Add(new ProductImageDTO() { Image = model.ImagesBytes[2] }); productDto.Images.Add(new ProductImageDTO() { Image = model.ImagesBytes[3] }); } //TODO: Refactor this - move Mapper or Helper productDto.Gender = _genderService.GetGenderById(Convert.ToInt32(model.SelectedGender)); productDto.Price = price; //TODO: Refactor this - move Mapper or Helper if (model.HeroImage != null) { productDto.HeroImage = ProductHelper.WriteImageToBytes(model.HeroImage); } //TODO: Refactor this - move to Helper - refactor e.g. model.Image1,2,3 => .Add to list return list if (fileExists) { if (model.Image1 != null) { productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image1) }); } if (model.Image2 != null) { productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image2) }); } if (model.Image3 != null) { productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image3) }); } if (model.Image4 != null) { productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image4) }); } } productDto.Sizes = JsonConvert.DeserializeObject <List <ProductSizeDTO> >(model.SizesJson); if (!_productService.Update(productDto)) { response.Error.Name = "Add Product"; response.Error.Message = "There was a problem while attempting to add the Product, please try again. If this problem persists, please contact support."; return(response); } response.ActionSuccessful = true; response.SuccessMessage = "Product successfully updated"; return(response); }
public BaseWebServiceResponse Add(AddProductViewModel model) { var response = new BaseWebServiceResponse(); if (_productService.ProductNameExists(model.ProductName)) { response.Error.Name = "Product Name"; response.Error.Message = "Product Name exists"; return(response); } decimal price; if (!decimal.TryParse(model.Price, out price)) { response.ActionSuccessful = false; response.Error.Name = "Price"; response.Error.Message = "Price must be a decimal value e.g. 100.00"; return(response); } List <IFormFile> listFiles = new List <IFormFile>() { model.Image1, model.Image2, model.Image3, model.Image4, }; bool fileExists = _fileValidationWebService.FileExists(listFiles); if (!fileExists) { response.Error.Name = "Images"; response.Error.Message = "At least one Image must be uploaded."; return(response); } bool filesAreJpg = _fileValidationWebService.IsFileFormatJpg(listFiles); if (!filesAreJpg) { response.Error.Name = "Images"; response.Error.Message = "Files must be jpg file format."; return(response); } //TODO: Refactor this - Mapper or Helper var productDto = mapper.Map <AddProductViewModel, ProductDTO>(model); productDto.Gender = _genderService.GetGenderById(Convert.ToInt32(model.SelectedGender)); productDto.Price = price; productDto.HeroImage = ProductHelper.WriteImageToBytes(model.HeroImage); productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image1) }); productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image2) }); productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image3) }); productDto.Images.Add(new ProductImageDTO() { Image = ProductHelper.WriteImageToBytes(model.Image4) }); productDto.Sizes = JsonConvert.DeserializeObject <List <ProductSizeDTO> >(model.SizesJson); if (!_productService.Add(productDto)) { response.Error.Name = "Add Product"; response.Error.Message = "There was a problem while attempting to add the Product, please try again. If this problem persists, please contact support."; return(response); } response.ActionSuccessful = true; response.SuccessMessage = "Product added successfully!"; return(response); }
public BaseWebServiceResponse Register(RegisterViewModel model) { var response = new BaseWebServiceResponse { Error = _userValidationService.ValidateUserDateOfBirth( int.Parse(model.DateOfBirthDay), int.Parse(model.DateOfBirthMonth), int.Parse(model.DateOfBirthYear)) }; if (response.Error != null) { return(response); } if (_userValidationService.IsEmailInUse(model.Email)) { response.Error = new ErrorServiceViewModel() { Name = "Email", Message = "Email is already in use." }; return(response); } response.Error = _userValidationService.ValidatePassword(model.Password, model.ConfirmPassword); if (response.Error != null) { return(response); } var newUser = _userService.Create( new UserDTO() { Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DateOfBirth = new DateTime( Convert.ToInt32(model.DateOfBirthYear), Convert.ToInt32(model.DateOfBirthMonth), Convert.ToInt32(model.DateOfBirthDay)), IsSubscribed = model.IsSubscribed, Password = model.Password }); if (newUser == null || newUser.Id == 0) { //TODO: Create logging service at Service layer and log error _userService.TryRollbackUser(newUser); response.Error = new ErrorServiceViewModel() { Name = "User", Message = "There was a problem creating your account. We have been notified of the error but please try again." }; return(response); } response.JsonResponseObject = JsonConvert.SerializeObject(newUser); response.ActionSuccessful = true; return(response); }