Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }