public ActionResult New(SubmitMsgVM SubmitMsg) { #region GettingCurrentUser var currentUser = UserManager.FindById(User.Identity.GetUserId()); #endregion #region DecryptMsg var record = DbContext.CryptoSettingsList.Where(x => x.User.Id == currentUser.Id).ToList(); SubmitMsg.MsgText = MvcApplication.CBCCrypto.Decrypt(SubmitMsg.MsgText, Encoding.ASCII.GetString(record[0].Key), record[0].IV); #endregion if (ModelState.IsValid) { #region SaveMsg var Msg = new Message(); Msg.From = currentUser; Msg.DateCreated = DateTime.Now; var targetUser = UserManager.FindByEmail(SubmitMsg.ToEmail); if (targetUser == null) { return(View("SendMsgResult", OperationResult.Fail)); } Msg.To = targetUser; Msg.MsgText = SubmitMsg.MsgText; DbContext.Messages.Add(Msg); DbContext.SaveChanges(); #endregion return(View("SendMsgResult", OperationResult.Success)); } else { return(View("SendMsgResult", OperationResult.Fail)); } }
//GET: New Message Form public ActionResult New() { #region GettingCurrentUser var currentUser = UserManager.FindById(User.Identity.GetUserId()); #endregion #region GeneratingCryptoSettings Random r = new Random((int)DateTime.Now.Ticks); var key = new byte[8]; key = key.Select(x => (byte)r.Next(65, 91)).ToArray(); string sKey = Encoding.ASCII.GetString(key); var iV = new byte[8]; iV = iV.Select(x => (byte)r.Next(97, 123)).ToArray(); string sIV = Encoding.ASCII.GetString(iV); var submitMsg = new SubmitMsgVM(); submitMsg.Key = sKey; submitMsg.IV = sIV; #endregion #region SaveCryptoSettings var record = DbContext.CryptoSettingsList.Where(x => x.User.Id == currentUser.Id).ToList(); if (record.Count == 0) { DbContext.CryptoSettingsList.Add(new CryptoSettings { IV = iV, Key = key, User = currentUser }); } else { record[0].IV = iV; record[0].Key = key; } DbContext.SaveChanges(); #endregion return(View(submitMsg)); }