public ActionResult UpdateUser([FromBody] string userJS) { var watch = System.Diagnostics.Stopwatch.StartNew(); GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric() { Message = "", ReturnCode = 0, //ReturnValue = "" }; try { if (userJS == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; result.ReturnCode = -1; result.Message = "Missing argument userJS"; logger.Warn("UpdateUser API Request ends with an Error."); logger.Warn(result.Message); } else { GlobalVars.User user = JsonConvert.DeserializeObject <GlobalVars.User>(userJS); logger.Info("UpdateUser API Request."); if (!string.IsNullOrEmpty(user.UserName)) { logger.Debug("Parameter:" + JsonConvert.SerializeObject(user, Formatting.Indented)); result = SQLFunctionsUsers.UpdateUser(user); switch (result.ReturnCode) { case 0: logger.Info("UpdateUser API Request was executed Successfully."); Response.StatusCode = (int)HttpStatusCode.OK; break; case -1: logger.Info("UpdateUser API Request ends with a warning."); Response.StatusCode = (int)HttpStatusCode.OK; break; case -2: Response.StatusCode = (int)HttpStatusCode.InternalServerError; logger.Fatal("UpdateUser API Request ends with a Fatal Error."); logger.Debug("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; break; } } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; result.ReturnCode = -1; result.Message = "UpdateUser value is not valid."; logger.Warn("UpdateUser API Request ends with an Error."); logger.Warn(result.Message); } } } catch (Exception e) { logger.Fatal("UpdateUser API Request ends with a Fatal Error."); result.ReturnCode = -2; result.Message = e.Message; var baseException = e.GetBaseException(); result.Exception = baseException.ToString(); logger.Fatal("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; } Response.ContentType = "application/json"; watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; elapsedMs = elapsedMs / 1000; result.ElapsedTime = elapsedMs.ToString(); result.HttpStatusCode = Response.StatusCode.ToString(); var messaje = JsonConvert.SerializeObject(result, Formatting.Indented); logger.Info("Leaving UpdateUser API"); //return Json(messaje); return(Content(messaje)); }
/// <summary> /// /// </summary> /// <returns></returns> static public GlobalVars.ResultGeneric UpdateUser(GlobalVars.User user) { GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric() { ReturnCode = 0, Message = "", RecordsCount = 0, HttpStatusCode = "" }; try { logger.Trace("Entering into UpdateUser Method ..."); using (ScanningDBContext DB = new ScanningDBContext()) { // User Name must be unique in the Database. The Name could be change but it must be unique Users Matching_Result = DB.Users.FirstOrDefault(x => x.UserName == user.UserName); if (Matching_Result != null) { // Means --> this is a new name Matching_Result = DB.Users.FirstOrDefault(x => x.UserId == user.UserID); if (Matching_Result != null) { Matching_Result.UserName = user.UserName; Matching_Result.Email = user.Email; Matching_Result.ActiveFlag = Convert.ToString(user.ActiveFlag); Matching_Result.Title = user.Title; DB.SaveChanges(); // Update User UI Functionlaities // 1- Delete existing all existimg UI Functinalities for this user DB.UserUifunctionality.RemoveRange(DB.UserUifunctionality.Where(x => x.UserId == user.UserID)); DB.SaveChanges(); // 2- Add User Functionalities UserUifunctionality New_Record = new UserUifunctionality(); foreach (GlobalVars.UIFunctionality functionlaity in user.UIFunctionality) { New_Record.FunctionalityId = functionlaity.FunctionalityID; New_Record.UserId = user.UserID; DB.UserUifunctionality.Add(New_Record); DB.SaveChanges(); } result.Message = "UpdateUser transaction completed successfully. One Record Updated."; } else { // Means --> cannot update a Customer that does not exist result.ReturnCode = -1; result.Message = "User " + user.UserName + " does not exist. UpdateUser transaction ignore."; } } else { // Means --> the name already exist result.ReturnCode = -1; result.Message = "User " + user.UserName + " already exist. UpdateUser transaction ignore."; } } logger.Debug(result.Message); } catch (Exception e) { logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException); result.ReturnCode = -2; result.Message = e.Message; var baseException = e.GetBaseException(); result.Exception = baseException.ToString(); } logger.Trace("Leaving UpdateUser Method ..."); return(result); }
/// <summary> /// Get User Information by ID /// </summary> /// <returns></returns> static public GlobalVars.ResultUsers GetUserByID(int userID) { List <GlobalVars.User> users = new List <GlobalVars.User>(); GlobalVars.ResultUsers resultUsers = new GlobalVars.ResultUsers() { ReturnCode = 0, Message = "", ReturnValue = users, RecordsCount = 0, HttpStatusCode = "" }; try { logger.Trace("Entering into GetUserByID Method ..."); using (ScanningDBContext DB = new ScanningDBContext()) { var results = DB.Users.Where(x => x.UserId == userID); resultUsers.RecordsCount = results.Count(); if (results.Count() >= 1) { foreach (var x in results) { GlobalVars.User user = new GlobalVars.User() { UserID = x.UserId, UserName = (x.UserName ?? "").Trim(), Title = x.Title, Email = x.Email, ActiveFlag = Convert.ToBoolean(x.ActiveFlag) }; var result_aux = from u in DB.UserUifunctionality join f in DB.Sssfunctionality on u.FunctionalityId equals f.FunctionalityId where u.UserId == x.UserId select new { f.FunctionalityId, f.Functionality }; List <GlobalVars.UIFunctionality> funtionalities = new List <GlobalVars.UIFunctionality>(); if (result_aux.Count() >= 1) { foreach (var y in result_aux) { GlobalVars.UIFunctionality functionality = new GlobalVars.UIFunctionality(); functionality.FunctionalityID = y.FunctionalityId; functionality.Description = y.Functionality; funtionalities.Add(functionality); } } user.UIFunctionality = funtionalities; users.Add(user); } } } resultUsers.ReturnValue = users; resultUsers.Message = "GetUserByID transaction completed successfully. Number of records found: " + resultUsers.RecordsCount; logger.Debug(resultUsers.Message); } catch (Exception e) { logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException); resultUsers.ReturnCode = -2; resultUsers.Message = e.Message; var baseException = e.GetBaseException(); resultUsers.Exception = baseException.ToString(); } logger.Trace("Leaving GetUserByID Method ..."); return(resultUsers); }
/// <summary> /// /// </summary> /// <returns></returns> static public GlobalVars.ResultGeneric NewUser(GlobalVars.User user) { GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric() { ReturnCode = 0, Message = "", RecordsCount = 0, HttpStatusCode = "" }; try { logger.Trace("Entering into NewUser Method ..."); // Check if User Exist result = ExistUserName(user.UserName); if (result.RecordsCount == 0) { // Create new User ... using (ScanningDBContext DB = new ScanningDBContext()) { Users New_Record = new Users(); New_Record.UserName = user.UserName; New_Record.Title = user.Title; New_Record.ActiveFlag = Convert.ToString(user.ActiveFlag); New_Record.Email = user.Email; DB.Users.Add(New_Record); DB.SaveChanges(); } // Get the user ID created above, so it can be useed in UserUI Functionality Table below GlobalVars.ResultUsers users = new GlobalVars.ResultUsers(); users = GetUserByName(user.UserName); // Add User Functionalities ... using (ScanningDBContext DB = new ScanningDBContext()) { UserUifunctionality New_Record = new UserUifunctionality(); foreach (GlobalVars.UIFunctionality functionlaity in user.UIFunctionality) { New_Record.FunctionalityId = functionlaity.FunctionalityID; New_Record.UserId = user.UserID; DB.UserUifunctionality.Add(New_Record); DB.SaveChanges(); } } result.Message = "NewUser transaction completed successfully. One Record added."; } else { result.ReturnCode = -1; result.Message = "User " + user.UserName + " already exist. NewUser transaction ignore."; } logger.Debug(result.Message); } catch (Exception e) { logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException); result.ReturnCode = -2; result.Message = e.Message; var baseException = e.GetBaseException(); result.Exception = baseException.ToString(); } logger.Trace("Leaving NewUser Method ..."); return(result); }