public static DBActionStatus <bool> UpdateUser(string email, UserGetUpdate user)
        {
            try
            {
                using (var connection = new SqlConnection(connString + ";Database=" + dbName))
                {
                    using (var command = new SqlCommand("update_user", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add(new SqlParameter("@Surname", user.Surname));
                        command.Parameters.Add(new SqlParameter("@Name", user.Name));
                        command.Parameters.Add(new SqlParameter("@Email", email));
                        command.Parameters.Add(new SqlParameter("@MobilePhone", user.Mobilephone));

                        connection.Open();

                        command.ExecuteNonQuery();
                        return(new DBActionStatus <bool> {
                            status = ResultType.Success, message = "User updated: " + email, data = true
                        });
                    }
                }
            }

            catch (Exception e)
            {
                return(new DBActionStatus <bool> {
                    status = ResultType.Error, message = "Unable yo update user: "******" Error: " + e.Message, data = false
                });
            }
        }
        public static DBActionStatus <UserGetUpdate> GetUser(string email)
        {
            try
            {
                using (var connection = new SqlConnection(connString + ";Database=" + dbName))
                {
                    using (var command = new SqlCommand("get_user", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.Add(new SqlParameter("@Email", email));
                        connection.Open();

                        var data = command.ExecuteReader();
                        if (data.Read())
                        {
                            UserGetUpdate user = new UserGetUpdate();
                            user.Surname     = data.GetValue(0).ToString();
                            user.Name        = data.GetValue(1).ToString();
                            user.Email       = data.GetValue(2).ToString();
                            user.Mobilephone = data.GetValue(3).ToString();

                            return(new DBActionStatus <UserGetUpdate> {
                                status = ResultType.Success, message = "User found", data = user
                            });
                        }
                        else
                        {
                            return new DBActionStatus <UserGetUpdate> {
                                       status = ResultType.Error, message = "User not found " + email, data = null
                            }
                        };
                    }
                }
            }
            catch (Exception e)
            {
                return(new DBActionStatus <UserGetUpdate> {
                    status = ResultType.Error, message = "Error while searching user: "******" Error: " + e.Message, data = null
                });
            }
        }
        public ActionResult Update(UserGetUpdate model)
        {
            if (ModelState.IsValid)
            {
                string currEmail             = User.Identity.Name;
                DBActionStatus <bool> result = DBAccess.UpdateUser(currEmail, model);

                if (result.status == ResultType.Success)
                {
                    DBAccess.WriteLog("Event", result.message, DateTime.Now);
                    return(RedirectToAction("Get", "User"));
                }
                else
                {
                    DBAccess.WriteLog("Error", result.message, DateTime.Now);
                    ModelState.AddModelError("", result.message);
                }
            }
            else
            {
                ModelState.AddModelError("", "Invalid data");
            }
            return(View(model));
        }