public HttpResponseMessage CreateNewCategory(CategoryViewModel catVm) { var response = new ApiResultViewModel <CategoryViewModel>(); try { var identityUserId = User.Identity.GetUserId <int>(); var newCategoryItem = new Category() { Name = catVm.Name.Trim(), Description = catVm.Description, CreatedBy_Id = identityUserId, ParentCatId = catVm.ParentCatId }; _catSvc.NewCategory(newCategoryItem); if (newCategoryItem.HasErrors) { response.errorStatus = newCategoryItem.HasErrors; response.errorMessage = newCategoryItem.ValidationErrors.FirstOrDefault() != null? newCategoryItem.ValidationErrors.FirstOrDefault().ErrorMessage : string.Empty; } else { var membershipUserId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null; response.message = "Category was saved successfully"; var eventDescription = String.Format("{0} Category was created.", newCategoryItem.Name); _cacheManager.Remove(Key); _auditSvc.LogEvent(eventDescription, AuditType.NEW_CATEGORY, membershipUserId, identityUserId); } } catch (Exception ex) { _logger.Log(ex); #if DEBUG response.errorMessage = ex.Message; response.errorStatus = true; #else response.errorMessage = "Error occured, please contact admin."; response.errorStatus = true; #endif } return(Request.CreateResponse(response)); }
public HttpResponseMessage CreateUserAccount(AppUserViewModel accountModel) { var response = new ApiResultViewModel <AppUserViewModel>(); if (ModelState.IsValid) { var user = new AppUser { Email = accountModel.Email, UserName = accountModel.UserName, PhoneNumber = accountModel.PhoneNumber, FirstName = accountModel.FirstName, LastName = accountModel.LastName, LockoutEnabled = !accountModel.Status }; try { if (IposConfig.UseMembership) { var membershipUser = IposMembershipService.CreateUserAccount(accountModel); if (membershipUser.HasError) { response.errorMessage = membershipUser.ErrorMessage; response.errorStatus = true; return(Request.CreateResponse(response)); } } var userRegisterResponse = _appUserMgr.Create(user, accountModel.Password); if (userRegisterResponse.Succeeded) { AddToMutipleRoles(accountModel, user.Id); var eventDescription = String.Format("{0} account was created.", accountModel.UserName); var membershipUserId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null; _auditSvc.LogEvent(eventDescription, AuditType.NEW_ACCOUNT, membershipUserId, User.Identity.GetUserId <int>()); response.message = "New User account has been created."; return(Request.CreateResponse(response)); } else { response.errorMessage = userRegisterResponse.Errors.FirstOrDefault(); } } catch (Exception e) { _logger.Log(e); #if DEBUG response.errorMessage = e.Message; response.errorStatus = true; #else response.errorMessage = "Error occured, please contact admin."; response.errorStatus = true; #endif } } else { response.errorStatus = true; response.errorMessage = "Cannot create user account with Incomplete fields."; } return(Request.CreateResponse(response)); }
public HttpResponseMessage EditWasteItem(SpoilViewModel spoilVm) { var response = new ApiResultViewModel <dynamic>(); if (spoilVm == null || Guid.Empty == spoilVm.SpoilId || spoilVm.Quantity <= 0) { response.errorStatus = true; response.errorMessage = "Invalid request. Please confirm and try again."; } try { using (var uow = _wasteSvc.UnitOfWork) { var spoil = _wasteSvc.GetWastedById(spoilVm.SpoilId); var product = _prodSvc.GetProductById(spoil.Product_Id.Value); if (product == null) { response.errorStatus = true; response.errorMessage = "Product was not found."; return(Request.CreateResponse(response)); } var oldQty = spoil.Quantity; if (product.Quantity < 0 || product.Quantity + (oldQty - spoilVm.Quantity) < 0) { response.errorStatus = true; response.errorMessage = "Cannot report waste for a negative product."; return(Request.CreateResponse(response)); } var membershipId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null; var identityUserId = User.Identity.GetUserId <int>(); spoil.Quantity = spoilVm.Quantity; product.Quantity += (oldQty - spoilVm.Quantity); _prodSvc.Update(product); _wasteSvc.Update(spoil); var eventDescription = String.Format("Waste {0} item was edited.", product.Name); _auditSvc.LogEvent(eventDescription, AuditType.EDIT_WASTE, membershipId, identityUserId); uow.SaveChanges(); response.message = "Waste item has been updated"; response.result = new { productName = product.Name, spoil.Quantity, spoil.SpoilId, EntryDate = spoil.EntryDate.Value.ToString("dd/MM/yyyy") }; } } catch (Exception e) { _logger.Log(e); #if DEBUG response.errorMessage = e.Message; response.errorStatus = true; #else response.errorMessage = "An error occurred while working, Please try again or contact support."; response.errorStatus = true; #endif return(Request.CreateResponse(response)); } return(Request.CreateResponse(response)); }
public HttpResponseMessage CreateNewProd(ProductViewModel prodVM, bool isDiscountable = false) { var response = new ApiResultViewModel <ProductViewModel>(); try { if (prodVM.CanExpire && string.IsNullOrEmpty(prodVM.ExpiryDate)) { response.errorStatus = true; response.errorMessage = "Expiry Date is required."; return(Request.CreateResponse(response)); } var identityUserId = User.Identity.GetUserId <int>(); var membershipUserId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null; var newProd = new Product { Name = prodVM.Name.Trim(), Description = prodVM.Description, CostPrice = prodVM.CostPrice ?? 0, Price = prodVM.SellPrice ?? 0, Quantity = prodVM.Quantity ?? 0, Category_UId = prodVM.Category, ReorderLevel = prodVM.ReorderLevel ?? 0, Notes = prodVM.Notes, IsDiscountable = prodVM.IsDiscountable, Barcode = prodVM.Barcode, CreatedBy_Id = identityUserId, Insert_UId = membershipUserId }; SetExpiryDate(prodVM, newProd); if (newProd.CanExpire && DateTime.Today > newProd.ExpiryDate) { response.errorStatus = true; response.errorMessage = "Expiry Date must be a date beyond today."; return(Request.CreateResponse(response)); } if (_prodSvc.ProductBarcodeExists(newProd.Barcode)) { response.errorStatus = true; response.errorMessage = "Barcode already exists for another product."; return(Request.CreateResponse(response)); } _prodSvc.NewProduct(newProd); if (newProd.HasErrors) { response.errorStatus = newProd.HasErrors; response.errorMessage = newProd.ValidationErrors.FirstOrDefault() != null? newProd.ValidationErrors.FirstOrDefault().ErrorMessage : String.Empty; } else { response.errorStatus = false; response.errorMessage = "Product was saved successfully"; } var eventDescription = String.Format("{0} item was created ", newProd.Name); _auditSvc.LogEvent(eventDescription, AuditType.NEW_PRODUCT, membershipUserId, identityUserId); } catch (Exception ex) { _logger.Log(ex); #if DEBUG response.errorMessage = ex.Message; response.errorStatus = true; #else response.errorMessage = "Error occured, please contact admin."; response.errorStatus = true; #endif return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } return(Request.CreateResponse(response)); }