コード例 #1
0
        public HttpResponseMessage DeleteArticle(string Id)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            //取得使用者ID
            string UserID = JWTShared.GetUserID(Request.Headers.Authorization.Parameter);

            ArticleViewModel ArticleViewModel = articleRepository.GetArticle(Id, UserID);

            if (ArticleViewModel == null)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "查無此文章資料!!!";
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }

            bool IsSuccess = articleRepository.DeleteArticle(Id, UserID);

            if (IsSuccess)
            {
                result.Result  = true;
                result.Status  = ResponseCode.Success.ToString();
                result.Message = "刪除成功!!!";
            }
            else
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "刪除文章資料發生錯誤!!!";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #2
0
        public HttpResponseMessage GetSalesTransaction(SalesHistoryApiRequestModel request)
        {
            var response = new ApiResultViewModel <List <SalesRecordViewModel> >
            {
                result = new List <SalesRecordViewModel>()
            };

            try
            {
                var dtoResult = GetPagedSales(request);

                dtoResult.ForEach(item => response.result.Add(Mapper.Map <SalesRecordViewModel>(item)));

                if (dtoResult.Count() > 0)
                {
                    response.additionalResult = new { pageCount = dtoResult.FirstOrDefault().TotalCount, SumTotal = dtoResult.Sum(t => t.Total) }
                }
                ;
            }
            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));
        }
コード例 #3
0
        private static void setErrorResponse(HttpActionContext actionContext, ApiResultViewModel result)
        {
            var response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, result);

            //最主要是將Response這個帶入要回傳的資料
            actionContext.Response = response;
        }
コード例 #4
0
        public HttpResponseMessage GetTransactionSales()
        {
            var response = new ApiResultViewModel <OrderDto>();

            try
            {
                var todayDate = DateTime.Now.ToShortDateString();
                var dtoResult = _reportSvc.GetDashboardAggregateData(todayDate);

                if (!dtoResult.HasErrors)
                {
                    response.result = dtoResult;
                }
                else
                {
                    response.errorMessage = dtoResult.ValidationErrors[0].ErrorMessage;
                    response.errorStatus  = true;
                }
            }
            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));
        }
コード例 #5
0
        public HttpResponseMessage GetRestockItems()
        {
            var response = new ApiResultViewModel <List <RestockDto> >();

            try
            {
                var dtoResult = _reportSvc.GetRestockItems().Select(p =>
                                                                    new RestockDto
                {
                    Description  = p.Description.Shorten(30),
                    Id           = p.Id,
                    ProductId    = p.ProductId,
                    ProductUId   = p.ProductUId,
                    ReorderLevel = p.ReorderLevel,
                    Quantity     = p.Quantity,
                    EntryDate    = p.EntryDate,
                    Name         = p.Name
                });
                response.result = dtoResult.ToList();
            }
            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));
        }
コード例 #6
0
        public HttpResponseMessage AddUser([FromBody] UserModel userModel)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            if (!ModelState.IsValid)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = AllShared.GetModelStateError(ModelState);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            //取得加密密碼
            userModel.UserPwd = userModel.UserPwd.GetMD5();

            bool IsSuccess = userRepository.AddUser(userModel);

            if (IsSuccess)
            {
                result.Result  = true;
                result.Status  = ResponseCode.Success.ToString();
                result.Message = "新增成功!!!";
            }
            else
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "新增資料時發生錯誤!!!";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));

            //HttpResponseMessage httpRequestMessage = Request.CreateResponse(HttpStatusCode.OK, result);
            //return Request.CreateResponse(httpRequestMessage);
        }
コード例 #7
0
        public HttpResponseMessage SearchItemCategory(ApiRequestViewModel vm)
        {
            ApiResultViewModel <List <CategoryViewModel> > response = new ApiResultViewModel <List <CategoryViewModel> >();

            try
            {
                var pageIndex = ((vm.pageIndex - 1) * vm.itemsOnPage);

                var categoryList = _catSvc.GetSearchCategory(vm.q as string, pageIndex, vm.itemsOnPage);

                var categoryVmList = categoryList.Select(Mapper.Map <GetCategoryDto, CategoryViewModel>).ToList();

                response.result = categoryVmList;

                if (categoryList.Count > 0)
                {
                    response.additionalResult = categoryList.FirstOrDefault().TotalCount;
                }
            }
            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));
        }
コード例 #8
0
        public ApiResultViewModel <List <Models.Y_EarlyWarningViewModels> > Get()
        {
            ApiResultViewModel <List <Y_EarlyWarningViewModels> > result = new ApiResultViewModel <List <Y_EarlyWarningViewModels> >();

            try
            {
                string  filePath  = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Setting.ini");
                IniFile ini       = new IniFile(filePath);
                var     isChecked = bool.Parse(ini.ReadString("PollingBroadcast", "Checked", ""));
                if (isChecked)
                {
                    int       siteId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["SiteId"]);
                    DataTable dt     = CRBIYYBBReportProjectRule.Intance().GetEarlyWarning(siteId);
                    List <Y_EarlyWarningViewModels> list = CRBICommonLib.ModelConvertHelper <Y_EarlyWarningViewModels> .ConvertToModel(dt);

                    if (list.Count <= 0)
                    {
                        result.Status = false;
                        return(result);
                    }
                    result.Status = true;
                    result.Obj    = list;
                }
                else
                {
                    result.Status = false;
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = ex.Message;
            }
            return(result);
        }
コード例 #9
0
        public HttpResponseMessage GetuserAccount(int?accountId)
        {
            var response = new ApiResultViewModel <AppUserViewModel>();

            if (accountId == null)
            {
                response.errorMessage = "Incomplete request.";
                return(Request.CreateResponse(response));
            }
            var account = _appUserMgr.FindById(accountId.Value);

            if (account == null)
            {
                response.errorStatus  = true;
                response.errorMessage = "Account does not exist.";
                return(Request.CreateResponse(response));
            }
            var userAccountVm = Mapper.Map <AppUserViewModel>(account);

            if (account.Roles.Any())
            {
                userAccountVm.Role = account.Roles.Select(item => item.RoleId).ToArray();
            }

            response.result = userAccountVm;
            return(Request.CreateResponse(response));
        }
コード例 #10
0
        public HttpResponseMessage GetItemHistory(ProductSalesHistoryRequestViewModel request)
        {
            var response = new ApiResultViewModel <List <OrderDetailViewModel> >();

            try
            {
                var productHistory = _ordDetSvc.GetOrderDetailHistory(request.pageIndex, request.itemsOnPage, request.id);

                var totalProductHistory = new List <OrderDetailViewModel>();
                productHistory.ForEach(history =>
                {
                    totalProductHistory.Add(Mapper.Map <OrderDetailViewModel>(history));
                });

                response.result = totalProductHistory;

                if (totalProductHistory.Count > 0)
                {
                    response.additionalResult = totalProductHistory.FirstOrDefault().TotalCnt;
                }

                return(Request.CreateResponse(response));
            }
            catch (Exception e)
            {
                _logger.Log(e);
                response.errorMessage = "An error occurred while working, Please try again or contact support.";
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, response));
            }
        }
コード例 #11
0
        public HttpResponseMessage AddArticle([FromBody] ArticleModel articleModel)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            //驗證欄位資訊
            if (!ModelState.IsValid)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = AllShared.GetModelStateError(ModelState);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }

            //取得使用者ID
            string UserID = JWTShared.GetUserID(Request.Headers.Authorization.Parameter);

            articleModel.UID = UserID;

            bool IsSuccess = articleRepository.AddArticle(articleModel);

            if (IsSuccess)
            {
                result.Result  = true;
                result.Status  = ResponseCode.Success.ToString();
                result.Message = "新增成功!!!";
            }
            else
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "新增資料時發生錯誤!!!";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #12
0
        public HttpResponseMessage UpdateArticle(string Id, [FromBody] ArticleUpdateModel UpdateInfo)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            if (!ModelState.IsValid)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = AllShared.GetModelStateError(ModelState);
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }

            if (UpdateInfo == null)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "無修改資料相關參數";
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }

            //取得使用者ID
            string UserID = JWTShared.GetUserID(Request.Headers.Authorization.Parameter);

            ArticleViewModel ArticleViewModel = articleRepository.GetArticle(Id, UserID);

            if (UpdateInfo.Title == null)
            {
                UpdateInfo.Title = ArticleViewModel.Title;
            }
            if (UpdateInfo.Content == null)
            {
                UpdateInfo.Content = ArticleViewModel.Content;
            }

            if (ArticleViewModel == null)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "查無此文章資料!!!";
                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }

            bool IsSuccess = articleRepository.UpdateArticle(Id, UserID, UpdateInfo);

            if (IsSuccess)
            {
                result.Result  = true;
                result.Status  = ResponseCode.Success.ToString();
                result.Message = "修改成功!!!";
            }
            else
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "修改文章資料發生錯誤!!!";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #13
0
        public HttpResponseMessage PendingPost()
        {
            var response = new ApiResultViewModel <List <PostedProduct> >();

            var pendingPost = _cacheManager.Get <List <PostedProduct> >(PostKey);

            response.result = pendingPost;
            return(Request.CreateResponse(response));
        }
コード例 #14
0
        public HttpResponseMessage EditUserAccount(AppUserViewModel accountModel)
        {
            var response = new ApiResultViewModel <AppUserViewModel>();

            if (accountModel.Id != 0)
            {
                var account = _appUserMgr.FindById(accountModel.Id);

                if (account == null)
                {
                    response.errorMessage = "Account does not exist.";
                    return(Request.CreateResponse(response));
                }

                try
                {
                    account.FirstName      = accountModel.FirstName;
                    account.LastName       = accountModel.LastName;
                    account.Email          = accountModel.Email;
                    account.PhoneNumber    = accountModel.PhoneNumber;
                    account.LockoutEnabled = !accountModel.Status;

                    var result = _appUserMgr.Update(account);

                    if (result.Succeeded)
                    {
                        RemovePreviousRoles(account);
                        AddToMutipleRoles(accountModel, account.Id);
                        _appUserMgr.Update(account);

                        var eventDescription = String.Format("{0} account was edited.", account.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 = "Account details has been updated.";
                    }
                    else
                    {
                        response.errorMessage = result.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
                }
            }
            return(Request.CreateResponse(response));
        }
コード例 #15
0
        private async Task HandleUnkownExceptionAsync(HttpContext httpContext, Exception exception)
        {
            _logger.LogError(exception, "Unhandled exception occurred in request {TraceIdentifier}",
                             httpContext.TraceIdentifier);

            httpContext.Response.ContentType = "application/json";
            httpContext.Response.StatusCode  = 500;
            await httpContext.Response.WriteAsync(JsonConvert.SerializeObject(ApiResultViewModel <object> .FromError(
                                                                                  new InternalErrorViewModel(exception.ToString())), _jsonSerializerSettings));
        }
コード例 #16
0
        public HttpResponseMessage EditProduct(ProductViewModel prodVM)
        {
            var response = new ApiResultViewModel <ProductViewModel>();

            try
            {
                var product = _prodSvc.GetProductById(prodVM.Id);

                if (product == null || product.IsDeleted)
                {
                    response.errorStatus  = true;
                    response.errorMessage = ("Sorry this product can not be found, Please contact your administrator");
                    Request.CreateResponse(response);
                }
                var fmrQty         = product.Quantity;
                var fmrName        = product.Name;
                var membershipId   = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null;
                var identityUserId = User.Identity.GetUserId <int>();

                product.ModifiedOnUtc  = DateTime.Now;
                product.ModifiedBy_Id  = identityUserId;
                product.Name           = prodVM.Name ?? product.Name;
                product.Description    = String.IsNullOrEmpty(prodVM.Description) ? product.Description : prodVM.Description;
                product.CostPrice      = prodVM.CostPrice;
                product.Price          = prodVM.SellPrice;
                product.Quantity       = prodVM.Quantity;
                product.Category_UId   = prodVM.Category;
                product.ReorderLevel   = prodVM.ReorderLevel;
                product.Notes          = String.IsNullOrEmpty(prodVM.Notes) ? product.Notes : prodVM.Notes;
                product.Barcode        = prodVM.Barcode;
                product.IsDiscountable = prodVM.IsDiscountable;

                SetExpiryDate(prodVM, product);

                _prodSvc.Update(product);

                response.message = "Item was successfully edited.";

                var eventDescription = String.Format("{0} Item with {1} quantity was edited to {2} with {3} quantity.", fmrName, fmrQty, product.Name, product.Quantity);
                _auditSvc.LogEvent(eventDescription, AuditType.EDIT_PRODUCT, membershipId, 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));
            }
            return(Request.CreateResponse(response));
        }
コード例 #17
0
 private Task HandleExceptionAsync(HttpContext context, ApiException exception)
 {
     context.Response.ContentType = "application/json";
     context.Response.StatusCode  = exception.StatusCode;
     return(context.Response.WriteAsync(JsonConvert.SerializeObject(ApiResultViewModel <object> .FromError(
                                                                        new ErrorViewModel
     {
         ErrorCode = exception.ErrorCode, ErrorDescription = exception.ErrorDescription
     }),
                                                                    _jsonSerializerSettings)));
 }
コード例 #18
0
        public async Task <HttpResponseMessage> Login(LoginViewModel vm)
        {
            var response = new ApiResultViewModel <bool>()
            {
                errorStatus = false
            };

            try
            {
                if (string.IsNullOrEmpty(vm.Username) || string.IsNullOrEmpty(vm.Password))
                {
                    response.errorMessage = "Username or Password cannot be empty.";
                    response.errorStatus  = true;
                }

                if (!response.errorStatus)
                {
                    var userAcct = await _appUserMgr.FindAsync(vm.Username, vm.Password);

                    if (userAcct != null)
                    {
                        if (userAcct.LockoutEnabled)
                        {
                            response.errorMessage = "Sorry, account locked. Please contact your Admin.";
                            response.errorStatus  = true;
                        }

                        _appUserMgr.SignIn(userAcct, false, false);
                        response.result = true;
                    }

                    else
                    {
                        response.errorMessage = "Username or Password is invalid, try again.";
                        response.errorStatus  = true;
                    }
                }
            }
            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
            }

            return(Request.CreateResponse(response));
        }
コード例 #19
0
        public HttpResponseMessage TransactionDetails(Guid?transactionId)
        {
            if (transactionId == null)
            {
                return(Request
                       .CreateErrorResponse(HttpStatusCode.BadRequest, "Incomplete request, Please confirm and try again."));
            }

            var response = new ApiResultViewModel <List <OrderDetailViewModel> > {
                result = new List <OrderDetailViewModel>()
            };

            try
            {
                IEnumerable <OrderDetailDto> orderDetail = _reportSvc.GetOrderedProducts(transactionId.Value);

                var totalItems = orderDetail.Count();
                if (totalItems > 0)
                {
                    double totalDiscount = 0;
                    var    orderedItems  = new List <OrderDetailViewModel>();

                    foreach (var item in orderDetail)
                    {
                        totalDiscount += item.Discount ?? 0;
                        orderedItems.Add(Mapper.Map <OrderDetailViewModel>(item));
                    }
                    response.result = orderedItems;

                    var salesDetails = Mapper.Map <SalesRecordViewModel>(orderDetail.FirstOrDefault());
                    salesDetails.Discount = Math.Round(totalDiscount, 2);
                    salesDetails.Total    = Math.Round(orderedItems.Sum(t => t.Total), 2);
                    salesDetails.SubTotal = Math.Round(orderedItems.Sum(t => t.UnitCost), 2);

                    //Uncoment here for discount %
                    //salesDetails.Discount = totalDiscount / totalItems;
                    response.additionalResult = salesDetails;
                }
            }
            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));
        }
コード例 #20
0
        public HttpResponseMessage PostTransaction(PostedTransactionViewModel request)
        {
            var response = new ApiResultViewModel <string>();

            if (request == null)
            {
                response.errorMessage = "Transaction not found.";
                response.errorStatus  = true;
                return(Request.CreateResponse(response));
            }

            if (!request.Products.Any())
            {
                response.errorMessage = "Posted Item is Invalid. Please try again.";
                response.errorStatus  = true;
                return(Request.CreateResponse(response));
            }

            var pendingPost = _cacheManager.IsSet(PostKey)
                ? _cacheManager.Get <List <PostedProduct> >(PostKey)
                : new List <PostedProduct>();

            foreach (var item in request.Products)
            {
                var prod = pendingPost.Find(p => p.Id == item.Id);

                if (prod != null)
                {
                    prod.Quantity += request.Quantity;
                    prod.Remarks   = request.Remarks ?? prod.Remarks;
                    prod.UnitPrice = prod.UnitPrice;
                }

                else
                {
                    pendingPost.Add(new PostedProduct
                    {
                        CreatedDate = DateTime.Now.ToString("dd/MM/yyyy"),
                        Id          = item.Id,
                        Name        = item.Name,
                        Quantity    = item.Quantity <= 0 ? request.Quantity : item.Quantity,
                        UnitPrice   = item.UnitPrice,
                        Remarks     = item.Remarks ?? request.Remarks
                    });
                }

                _cacheManager.Set(PostKey, pendingPost, AppKeys.DefaultCacheTime);
            }

            response.message = "Transaction successfully posted.";
            return(Request.CreateResponse(response));
        }
コード例 #21
0
        public HttpResponseMessage GetArticle(string Id)
        {
            ArticleViewModel ArticleViewModel = articleRepository.GetArticle(Id);

            ApiResultViewModel result = new ApiResultViewModel()
            {
                Result     = true,
                Status     = ResponseCode.Success.ToString(),
                ObjectData = ArticleViewModel
            };

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #22
0
        public HttpResponseMessage GetUsers()
        {
            List <UserViewModel> userModels = userRepository.GetUsers();

            ApiResultViewModel result = new ApiResultViewModel()
            {
                Result     = true,
                Status     = ResponseCode.Success.ToString(),
                ObjectData = userModels
            };

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #23
0
        public static string GetUserID(string strToken)
        {
            ApiResultViewModel result = TokenVerification(strToken);
            string             UID    = string.Empty;

            if (result.Result)
            {
                //取出Token資料
                JObject jObject = JObject.Parse(result.ObjectData.ToString());
                UID = jObject["Id"].ToString();
            }

            return(UID);
        }
コード例 #24
0
        /// <summary>
        /// 驗證Token
        /// </summary>
        /// <param name="Token"></param>
        /// <returns></returns>
        public static ApiResultViewModel TokenVerification(string Token)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            try
            {
                IJsonSerializer   serializer = new JsonNetSerializer();
                var               provider   = new UtcDateTimeProvider();
                IJwtValidator     validator  = new JwtValidator(serializer, provider);
                IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
                IJwtAlgorithm     algorithm  = new HMACSHA256Algorithm(); // symmetric
                IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder, algorithm);

                var json = decoder.Decode(Token, Secret, verify: true);

                result.Result     = true;
                result.Status     = ResponseCode.Success.ToString();
                result.ObjectData = json;

                //Console.WriteLine(json);
            }
            catch (TokenExpiredException)//這個Exception代表Token已過期
            {
                //Console.WriteLine("Token has expired");
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "Token已過期,請重新取得Token後再操作!!!";
                return(result);
            }
            catch (SignatureVerificationException)
            {
                //Console.WriteLine("Token has invalid signature");
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "驗證Token內容發生錯誤!!!";
                return(result);
            }
            catch (Exception)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "驗證Token內容發生錯誤!!!";
                return(result);
            }

            return(result);
        }
コード例 #25
0
        public HttpResponseMessage DeleteCategory(int[] itemsToDelete)
        {
            var response = new ApiResultViewModel <int[]>();

            if (itemsToDelete == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Incomplete Request"));
            }

            try
            {
                using (var uow = _catSvc.UnitOfWork)
                {
                    uow.BeginTransaction();

                    Array.ForEach(itemsToDelete, iterate =>
                    {
                        var categoryitem = _catSvc.GetCategoryById(iterate);

                        if (categoryitem == null)
                        {
                            return;
                        }

                        categoryitem.IsDeleted = true;
                        _catSvc.Update(categoryitem);
                    });
                    uow.Commit();
                    response.result = itemsToDelete;
                    _cacheManager.Remove(Key);
                    response.message = "Category has been deleted.";
                }
            }
            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));
        }
コード例 #26
0
        public IHttpActionResult UpdateUser(string Id, [FromBody] UserUpdateModel userInfo)
        {
            ApiResultViewModel result = new ApiResultViewModel();

            if (!ModelState.IsValid)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = AllShared.GetModelStateError(ModelState);
                return(Ok(result));
            }

            if (userInfo == null)
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "無修改資料相關參數";
                return(Ok(result));
            }

            //取得使用者ID
            //string UserID = JWTShared.GetUserID(Request.Headers.Authorization.Parameter);
            //if (Id != UserID)
            //{
            //    result.Result = false;
            //    result.Status = ResponseCode.Fail.ToString();
            //    result.Message = "錯誤的使用者ID";
            //    return Ok(result);
            //}

            bool IsSuccess = userRepository.UpdateUser(Id, userInfo);

            if (IsSuccess)
            {
                result.Result  = true;
                result.Status  = ResponseCode.Success.ToString();
                result.Message = "更新資料成功!!!";
            }
            else
            {
                result.Result  = false;
                result.Status  = ResponseCode.Fail.ToString();
                result.Message = "更新資料失敗,查無使用者資訊!!!";
            }

            return(Ok(result));
        }
コード例 #27
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));
        }
コード例 #28
0
        public HttpResponseMessage EditCategory(CategoryViewModel catVm)
        {
            var response = new ApiResultViewModel <CategoryViewModel>();

            try
            {
                var identityUserId   = User.Identity.GetUserId <int>();
                var membershipUserId = IposConfig.UseMembership ? (Guid?)IposMembershipService.GetUserId(User.Identity.Name) : null;

                var category = _catSvc.GetCategoryById(catVm.CategoryUId);

                if (category == null || category.IsDeleted)
                {
                    response.errorStatus  = true;
                    response.errorMessage = "Sorry please this category could not be found or permanently deleted. Please contact administrator";
                }
                else
                {
                    var previousName = category.Name;
                    category.ModifiedOnUtc = DateTime.Now;
                    category.ModifiedBy_Id = identityUserId;
                    category.Name          = catVm.Name ?? category.Name;
                    category.Description   = String.IsNullOrEmpty(catVm.Description) ? category.Description : catVm.Description;
                    _catSvc.Update(category);

                    var eventDescription = String.Format("{0} Category was edited to {1}.", previousName, category.Name);
                    _auditSvc.LogEvent(eventDescription, AuditType.EDIT_PRODUCT, membershipUserId, identityUserId);
                    _cacheManager.Remove(Key);

                    response.message = "Category edit was successful.";
                }
            }
            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));
        }
コード例 #29
0
        public ApiResultViewModel <bool> Post([FromBody] string postParam)
        {
            ApiResultViewModel <bool> result = new ApiResultViewModel <bool>();

            try
            {
                PostParamViewModel ppvm = JsonConvert.DeserializeObject <PostParamViewModel>(postParam);
                var isDelete            = CRBIYYBBReportProjectRule.Intance().DeleteWarnFault(ppvm.ID);
                result.Status = true;
                result.Obj    = isDelete;
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = ex.Message;
            }
            return(result);
        }
コード例 #30
0
        public HttpResponseMessage StockDelete(Guid?[] request)
        {
            var response = new ApiResultViewModel <Guid?[]>();

            if (request == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Incomplete Request."));
            }

            try
            {
                using (var uow = _prodSvc.UnitOfWork)
                {
                    uow.BeginTransaction();
                    Array.ForEach(request, iterate =>
                    {
                        var product = _prodSvc.GetProductByUId(iterate.Value);

                        if (product != null)
                        {
                            product.IsDeleted = true;
                            _prodSvc.Update(product);
                        }
                    });

                    uow.Commit();
                    response.result  = request;
                    response.message = "Products has been deleted.";
                }
            }
            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));
        }