public ActionResult AddUserDetails(UserDetails UserDetails)
 {
     try {
         if (User.Identity.IsAuthenticated)
         {
             UserDetails.UserId = User.Identity.GetUserId();
         }
         else
         {
             UserDetails.UserId = Request.Cookies["Guest"].Value;
         }
         UserDetailsService.CreateUserDetails(UserDetails);
         UserDetailsService.SaveUserDetails();
     }
     catch (DbEntityValidationException e)
     {
         var errorfeed = UserDetails.FirstName + " ErrorFeed: ";
         foreach (var eve in e.EntityValidationErrors)
         {
             errorfeed += String.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
             foreach (var ve in eve.ValidationErrors)
             {
                 errorfeed += String.Format("- Property: \"{0}\", Error: \"{1}\"",
                                            ve.PropertyName, ve.ErrorMessage);
             }
         }
         throw new Exception(errorfeed);
     }
     return(Json("Proceed With Confirming", JsonRequestBehavior.AllowGet));
 }
        public async Task <IActionResult> CreateUser([FromBody] CreateUserDTO param)
        {
            // Debug.WriteLine(param.LogonName + "\n");

            try
            {
                return(Ok(await _userDetails.CreateUserDetails(param)));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#3
0
        public async Task <ActionResponse <UserViewModel> > Create(UserViewModel request)
        {
            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    request.DateCreated = DateTime.UtcNow;
                    var user   = mapper.Map <UserViewModel, User>(request);
                    var result = await userManager.CreateAsync(user, request.Password);

                    if (!result.Succeeded)
                    {
                        return(await ActionResponse <UserViewModel> .ReturnError("Failed to create new user."));
                    }

                    request.Id = user.Id;

                    if ((await AddToDefaultRole(request)).IsNotSuccess(out ActionResponse <UserViewModel> actionResponse, out request))
                    {
                        return(await ActionResponse <UserViewModel> .ReturnError("Failed to edit user's roles.", request));
                    }

                    if ((await ModifyUserRoles(request)).IsNotSuccess(out actionResponse, out request))
                    {
                        return(await ActionResponse <UserViewModel> .ReturnError("Failed to edit user's roles."));
                    }

                    if ((await userDetailsService.CreateUserDetails(request)).IsNotSuccess(out actionResponse, out request))
                    {
                        return(actionResponse);
                    }
                    scope.Complete();
                }

                return(await ActionResponse <UserViewModel> .ReturnSuccess(request));
            }
            catch (Exception)
            {
                return(await ActionResponse <UserViewModel> .ReturnError("Dogodila se greška, molimo kontaktirajte svog administratora."));
            }
            finally
            {
                await cacheService.RefreshCache <List <UserDto> >();
            }
        }