Обновление столбца в БД на основе текущих изменений пользователя - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть страница, которая отображает кучу информации, извлеченной из базы данных.Кроме того, есть 2 столбца даты, которые доступны для редактирования.После нажатия submit данные изменяются как на странице, так и в базе данных.У меня также есть личность пользователя отображается на странице.Например, кто бы ни использовал этот компьютер, его имя и адрес электронной почты отображаются.

Моя дилемма: Я могу получить имя и адрес электронной почты, используя это в моем контроллере:

using (PrincipalContext domainContext = new PrincipalContext(ContextType.Domain))
        {
            UserPrincipal up = UserPrincipal.FindByIdentity(domainContext, System.Web.HttpContext.Current.Request.LogonUserIdentity.Name);
            agtName = up.Name;
            username = up.EmailAddress;
            TempData["loginName"] = agtName;
            TempData["Email"] = username;
        }


   [HttpPost]
    public JsonResult UpdatePlannedDate(string ids, string Date1, string Date2)
    {
        model = new Hello();
        Entity db = new Entity();
        List<Hello> list = new List<Hello>();
        string[] IDS = ids.Split(',');
        string[] Date1S = Date1.Split(',');
        string[] Date2S = Date2.Split(',');

        try
        {
            for (int i = 0; i < IDS.Length; i++)
            {
                if (IDS[i] != null && IDS[i] != "")
                {
                    Hello item = new Hello { R_ID = IDS[i], Date_Two = DateTime.Parse(Date2S[i]), Date_One = DateTime.Parse(Date1S[i]) };
                    list.Add(item);
                }
            }
            foreach (var row in db.table1)  
            {
                foreach (var row2 in db.table2) 
                {
                    if (row.U_ID == row2.C_ID)
                    {
                        foreach (var item in list)
                        {
                            if (row.U_ID == item.R_ID)
                            {
                                var cd = db.Table2.Where(x => x.C_ID == row.U_ID).First();
                                cd.PlanDate = Convert.ToDateTime(item.Date_Two);
                                cd.PlanDate = Convert.ToDateTime(item.Date_One);
                                cd.Last_Updated_By = username; 
                            }
                        }
                    }
                }
            }
            db.SaveChanges();
            return Json(new { success = true, msg = "Updated" });
        }
        catch (Exception ex)
        {
            return Json(new { success = false, msg = ex.Message });
        }
    }

Однако в моем классе просмотра есть столбецназывается Last_Updated_By (заполняется из базы данных), и я хочу, чтобы адрес электронной почты текущих пользователей был заменен после нажатия кнопки Submit (данные передаются в контроллер посредством вызова ajax).В настоящее время в этом столбце есть данные.

Посмотреть класс:

<td>@Html.DisplayFor(x => item.Last_Updaed_By)</td>

Я хотел бы получить некоторые идеи о том, как я смог бы добиться этого.Любая помощь будет здорово, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...