public async Task <ActionResult> Detail(Guid id, CategoryDetailVM vm)
        {
            if (!ModelState.IsValid)
            {
                return(View(vm));
            }

            APIResultVM result = new APIResultVM();

            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            if (id.IsNull() || id == Guid.Empty)
            {
                result = await _service.AddAsync(vm.Rec, user.Id);
            }
            else
            {
                result = await _service.UpdateAsync(id, vm.Rec, user.Id);
            }

            if (!result.IsSuccessful)
            {
                if (result.Messages.Any())
                {
                    foreach (var error in result.Messages)
                    {
                        ModelState.AddModelError("GeneralError", error);
                    }
                }

                return(View(vm));
            }

            return(RedirectToAction("Index", "Category"));
        }
Пример #2
0
        public virtual async Task <JsonResult> Add(A model)
        {
            APIResultVM result = new APIResultVM();

            try
            {
                if (Validation.IsNull(model))
                {
                    APIResult.CreateVM(false, null, AppStatusCode.WRG01001);
                }

                result = await _service.Add(model);

                if (Validation.ResultIsNotTrue(result))
                {
                    return(new JsonResult(result));
                }

                return(new JsonResult(APIResult.CreateVM(true, result.RecId)));
            }
            catch (Exception ex)
            {
                return(new JsonResult(APIResult.CreateVMWithError(ex, APIResult.CreateVM(false, result.RecId))));
            }
        }
Пример #3
0
        public virtual async Task <JsonResult> Delete(Guid id)
        {
            APIResultVM result = new APIResultVM();

            try
            {
                if (id == null || id == Guid.Empty)
                {
                    APIResult.CreateVM(false, null, AppStatusCode.WRG01001);
                }

                result = await _service.Delete(id);

                if (Validation.ResultIsNotTrue(result))
                {
                    return(new JsonResult(result));
                }

                return(new JsonResult(APIResult.CreateVM(true, result.RecId)));
            }
            catch (Exception ex)
            {
                return(new JsonResult(APIResult.CreateVMWithError(ex, APIResult.CreateVM(false, result.RecId))));
            }
        }
Пример #4
0
        public static APIResultVM CreateVMWithError(Exception e, APIResultVM vm = null)
        {
            if (vm == null)
            {
                vm = new APIResultVM()
                {
                    Result     = false,
                    RecId      = null,
                    StatusCode = AppStatusCode.ERR01001
                }
            }
            ;

            if (vm.Errors == null)
            {
                vm.Errors = new List <APIErrorVM>();
            }

            vm.Errors.Add(new APIErrorVM()
            {
                DateTime       = DateTime.Now,
                ErrorId        = Guid.NewGuid(),
                Message        = e.Message,
                Source         = e.Source,
                StackTrace     = e.StackTrace,
                InnerException = e.InnerException != null ? (
                    "Message: " + (e.InnerException.Message != null ? e.InnerException.Message : "") +
                    "Source: " + (e.InnerException.Source != null ? e.InnerException.Source : "") +
                    "Stack Trace: " + (e.InnerException.StackTrace != null ? e.InnerException.StackTrace : "")
                    ) : ""
            });

            return(vm);
        }
    }
Пример #5
0
        public static APIResultVM CreateVM(bool isSuccessful = false, Guid?recId = null, string statusCode = "")
        {
            var vm = new APIResultVM()
            {
                Result     = isSuccessful,
                RecId      = recId,
                StatusCode = statusCode,
            };

            return(vm);
        }
Пример #6
0
        public override APIResultVM CreateVM(
            Guid?recId        = null,
            bool isSuccessful = false,
            IEnumerable <APIResultErrorCodeVM> errors = null)
        {
            var vm = new APIResultVM()
            {
                IsSuccessful = isSuccessful,
                RecId        = recId,
                Errors       = errors
            };

            return(vm);
        }
Пример #7
0
        public static APIResultVM CreateVM(bool isSuccessful = false, Guid?recId = null, List <string> messages = null)
        {
            if (messages == null)
            {
                messages = new List <string>();
            }

            var vm = new APIResultVM()
            {
                IsSuccessful = isSuccessful,
                RecId        = recId,
                Messages     = messages
            };

            return(vm);
        }
Пример #8
0
        private async Task <UserAuthenticationVM> GetAccessToken()
        {
            HttpClient httpClient = new HttpClient();

            UserLoginVM loginVM = new UserLoginVM()
            {
                UserName = "******",
                Password = "******"
            };

            var url = GetHostAddress();

            url.Path = "/api/tokens/create";
            var response = await httpClient.PostAsJsonAsync(url.ToString(), loginVM);

            var responseString = await response.Content.ReadAsStringAsync();

            UserAuthenticationVM authModel = null;
            APIResultVM          apiResult = null;

            try
            {
                if (responseString.Contains("Errors", StringComparison.CurrentCultureIgnoreCase))
                {
                    apiResult = JsonSerializer.Deserialize <APIResultVM>(responseString);

                    if (apiResult.Errors != null && apiResult.Errors.Any(a => a.ErrorCode == APIStatusCode.ERR02025))
                    {
                        var user = await _userManager.FindByNameAsync("testuser");

                        if (user == null)
                        {
                            throw new Exception("GetAccessToken for HealthChecks or UnitTests, is failed, user not found");
                        }

                        var database        = _redis.GetDatabase();
                        var tokenDataResult = database.StringGet(user.Id.ToString());
                        if (!tokenDataResult.HasValue)
                        {
                            throw new Exception("GetAccessToken for HealthChecks or UnitTests, is failed, user token data not found");
                        }

                        TokenCacheVM tokenData = JsonSerializer.Deserialize <TokenCacheVM>(tokenDataResult);

                        return(new UserAuthenticationVM()
                        {
                            TokenData = tokenData,
                            Id = tokenData.Id
                        });
                    }
                    else
                    {
                        return(default(UserAuthenticationVM));
                    }
                }
                else if (responseString.Contains("UserName", StringComparison.CurrentCultureIgnoreCase))
                {
                    authModel = JsonSerializer.Deserialize <UserAuthenticationVM>(responseString);

                    return(authModel);
                }
                else
                {
                    SentrySdk.CaptureEvent(new SentryEvent()
                    {
                        Message = "GetAccessToken for HealthChecks or UnitTests, is failed",
                        Level   = Sentry.Protocol.SentryLevel.Error
                    });

                    return(default(UserAuthenticationVM));
                }
            }
            catch (System.Exception e)
            {
                SentrySdk.CaptureException(e);
                return(default(UserAuthenticationVM));
            }
        }