public JsonResult ChangePositionsProduct(List<int> ids, string productId, int idClaim)
        {
            var isComplete = false;
            ClaimStatusHistory model = null;
            var deleted = true;
            try
            {
                var user = GetUser();
                if (UserHelper.IsController(user)) deleted = false;
                var newProduct = UserHelper.GetUserById(productId);
                var db = new DbEngine();
                isComplete = db.ChangePositionsProduct(ids, productId);
                if (isComplete)
                {
                    var comment = "Пользователь " + user.ShortName + " переназначил позиции (" + ids.Count() +
                                  " шт.) пользователю " + newProduct.ShortName;
                    var status = db.LoadLastStatusHistoryForClaim(idClaim).Status.Id;
                    var statusHistory = new ClaimStatusHistory()
                    {
                        Date = DateTime.Now,
                        Comment = comment,
                        IdClaim = idClaim,
                        IdUser = user.Id,
                        Status = new ClaimStatus() { Id = status }
                    };
                    db.SaveClaimStatusHistory(statusHistory);
                    statusHistory.DateString = statusHistory.Date.ToString("dd.MM.yyyy HH:mm");
                    model = statusHistory;
                    //>>>>Уведомления
                    var claim = db.LoadTenderClaimById(idClaim);
                    var host = ConfigurationManager.AppSettings["AppHost"];
                    var manager = UserHelper.GetUserById(claim.Manager.Id);

                    //Сообщение менеджеру и автору
                    var messageMail = new StringBuilder();
                    messageMail.Append("Добрый день!");
                    //messageMail.Append(manager.Name);
                    messageMail.Append("<br/>");
                    messageMail.Append("В заявке №" + claim.Id + " произошли изменения.");
                    messageMail.Append("<br/>");
                    messageMail.Append(comment);
                    messageMail.Append("<br/>");
                    //messageMail.Append(GetClaimInfo(claim));
                    messageMail.Append("Ссылка на заявку: ");
                    messageMail.Append("<a href='" + host + "/Claim/Index?claimId=" + claim.Id + "'>" + host +
                                       "/Claim/Index?claimId=" + claim.Id + "</a>");
                    //messageMail.Append("<br/>Сообщение от системы Спец расчет");
                    Notification.SendNotification(new[] { manager }, messageMail.ToString(),
                        String.Format("{0} - {1} - Переназначение позиций в заявке СпецРасчет", claim.TenderNumber, claim.Customer));

                    //Сообщение продакту
                    messageMail = new StringBuilder();
                    messageMail.Append("Добрый день!");
                    //messageMail.Append(newProduct.Name);
                    messageMail.Append("<br/>");
                    messageMail.Append("В заявке №" + claim.Id + " Вам переназначены позиции от пользователя " + user.ShortName + "<br/>");
                    messageMail.Append("Кол-во позиций: " + ids.Count());
                    messageMail.Append("<br/>");
                    messageMail.Append(GetClaimInfo(claim));
                    messageMail.Append("<br/><br />");
                    messageMail.Append("Ссылка на заявку: ");
                    messageMail.Append("<a href='" + host + "/Calc/Index?claimId=" + claim.Id + "'>" + host +
                                                   "/Calc/Index?claimId=" + claim.Id + "</a>");
                    //messageMail.Append("<br/>Сообщение от системы Спец расчет");
                    Notification.SendNotification(new[] { newProduct }, messageMail.ToString(),
                        String.Format("{0} - {1} - Переназначение позиций в заявке СпецРасчет", claim.TenderNumber, claim.Customer));
                }

            }
            catch (Exception)
            {
                isComplete = false;
            }
            return Json(new { IsComplete = isComplete, Model = model, Deleted = deleted });
        }