public JsonResult User_Create(UserModel userModel)
        {
            if (userModel != null && ModelState.IsValid)
            {
                try
                {
                    AsmUser asmUser = null;

                    if (userModel.WamsUserNameIsEmpty == false)
                    {
                        asmUser = _userBusiness.GetAsmUser(userModel.WamsUserName);

                        if (asmUser == null)
                        {
                            return(Json(new
                            {
                                success = false,
                                Errors = $"Could not find WAMS User ID '{userModel.WamsUserName}'"
                            }));
                        }

                        if (_userBusiness.AsmUserInUse(userModel.WamsUserName))
                        {
                            return(Json(new
                            {
                                success = false,
                                Errors = $"WAMS User ID '{userModel.WamsUserName}' is already in use"
                            }));
                        }
                    }


                    var user = new User
                    {
                        Email          = userModel.Email,
                        FullName       = userModel.FullName,
                        VendorVendorId = userModel.VendorVendorId,
                        UserAsmUser    = userModel.WamsUserNameIsEmpty ? null : new UserAsmUser {
                            WamsId = asmUser.WamsId, WamsUser = asmUser.UserName
                        }
                    };

                    _userBusiness.Create(user);

                    _userBusiness.SaveChanges(WamsUser.WamsId);
                    var newid = _userBusiness.GetUsers().First(u => u.FullName == userModel.FullName && u.Email == userModel.Email).UserId;
                    return(Json(new
                    {
                        success = true,
                        Email = userModel.Email,
                        FullName = userModel.FullName,
                        newid = newid
                    }, JsonRequestBehavior.AllowGet));
                }
                catch (Exception)
                {
                    return(Json(new
                    {
                        success = false,
                        Errors = string.Format("Could not create user {0}", userModel.FullName)
                    }));
                }
            }

            return(Json(new { success = false, Errors = "Could not create user" }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult User_Update(UserModel userModel)
        {
            if (ModelState.IsValid && userModel != null)
            {
                try
                {
                    AsmUser newAsmUser = null;

                    if (userModel.WamsUserNameIsEmpty == false)
                    {
                        newAsmUser = _userBusiness.GetAsmUser(userModel.WamsUserName);

                        if (newAsmUser == null)
                        {
                            return(Json(new
                            {
                                success = false,
                                Errors = "Could not find WAMS User ID"
                            }));
                        }

                        if (_userBusiness.AsmUserInUse(userModel.WamsUserName, userModel.UserId))
                        {
                            return(Json(new
                            {
                                success = false,
                                Errors = $"WAMS User ID '{userModel.WamsUserName}' is already in use"
                            }));
                        }
                    }

                    var user = _userBusiness.GetUser(userModel.UserId);

                    if (user != null)
                    {
                        user.Email          = userModel.Email;
                        user.FullName       = userModel.FullName;
                        user.VendorVendorId = userModel.VendorVendorId;

                        if (userModel.WamsUserNameIsEmpty)
                        {
                            if (user.UserAsmUser != null)
                            {
                                _userBusiness.Remove(user.UserAsmUser);
                            }
                        }
                        else
                        {
                            if (user.UserAsmUser == null)
                            {
                                if (newAsmUser != null)
                                {
                                    user.UserAsmUser = new UserAsmUser {
                                        WamsId = newAsmUser.WamsId, WamsUser = newAsmUser.UserName
                                    }
                                }
                                ;
                            }
                            else
                            {
                                if (newAsmUser != null)
                                {
                                    user.UserAsmUser.WamsId   = newAsmUser.WamsId;
                                    user.UserAsmUser.WamsUser = newAsmUser.UserName;
                                }
                            }
                        }

                        _userBusiness.SaveChanges(WamsUser.WamsId);
                        return(Json(new
                        {
                            Email = userModel.Email,
                            FullName = userModel.FullName,
                            UserId = userModel.UserId,
                            success = true
                        }, JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception)
                {
                    return(Json(new
                    {
                        success = false,
                        Errors = $"Could not update user {userModel.FullName}"
                    }));
                }
            }

            return(Json(new
            {
                success = false,
                Errors = "Could not update user"
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        public ActionResult Edit(UserModel userModel)
        {
            if (ModelState.IsValid && userModel != null)
            {
                try
                {
                    AsmUser newAsmUser = null;

                    if (userModel.WamsUserNameIsEmpty == false)
                    {
                        newAsmUser = _userBusiness.GetAsmUser(userModel.WamsUserName);

                        if (newAsmUser == null)
                        {
                            return(Json(new
                            {
                                Errors = "Could not find WAMS User ID"
                            }));
                        }

                        if (_userBusiness.AsmUserInUse(userModel.WamsUserName, userModel.UserId))
                        {
                            return(Json(new
                            {
                                Errors = $"WAMS User ID '{userModel.WamsUserName}' is already in use"
                            }));
                        }
                    }

                    var user = _userBusiness.GetUser(userModel.UserId);

                    if (user != null)
                    {
                        user.Email          = userModel.Email;
                        user.FullName       = userModel.FullName;
                        user.VendorVendorId = userModel.VendorVendorId;

                        if (userModel.WamsUserNameIsEmpty)
                        {
                            if (user.UserAsmUser != null)
                            {
                                _userBusiness.Remove(user.UserAsmUser);
                            }
                        }
                        else
                        {
                            if (user.UserAsmUser == null)
                            {
                                if (newAsmUser != null)
                                {
                                    user.UserAsmUser = new UserAsmUser {
                                        WamsId = newAsmUser.WamsId, WamsUser = newAsmUser.UserName
                                    }
                                }
                                ;
                            }
                            else
                            {
                                if (newAsmUser != null)
                                {
                                    user.UserAsmUser.WamsId   = newAsmUser.WamsId;
                                    user.UserAsmUser.WamsUser = newAsmUser.UserName;
                                }
                            }
                        }

                        _userBusiness.SaveChanges(WamsUser.WamsId);
                    }
                    else
                    {
                        user                = new User();
                        user.Email          = userModel.Email;
                        user.FullName       = userModel.FullName;
                        user.VendorVendorId = userModel.VendorVendorId;
                        if (userModel.WamsUserNameIsEmpty == false && newAsmUser != null)
                        {
                            user.UserAsmUser = new UserAsmUser {
                                WamsId = newAsmUser.WamsId, WamsUser = newAsmUser.UserName
                            };
                        }

                        _userBusiness.Create(WamsUser.WamsId, user, true);
                    }
                }
                catch (Exception)
                {
                    return(Json(new
                    {
                        Errors = $"Could not update user"
                    }));
                }
            }
            else
            {
                var allErrors = ModelState.Values.SelectMany(v => v.Errors.Select(b => b.ErrorMessage));
                return(Json(new
                {
                    Errors = string.Join("<br />", allErrors)
                }));
            }

            return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
        }