Beispiel #1
0
        public motskin_mails Create(Dictionary <string, string> parameters, aspnet_Users user, out string msg)
        {
            motskin_mails res = null;

            msg = "";
            try
            {
                if (!_IsCanUserChange(user))
                {
                    msg = "Нет прав для данной операции";
                    return(null);
                }
                var  statusID = GetStatuses().FirstOrDefault(x => x.code == "created").id;
                Guid guid     = Guid.NewGuid();
                res = new motskin_mails
                {
                    date          = DateTime.Now, // дата неизменна
                    mailStatusID  = statusID,
                    createdUnique = guid
                };
                _fillMail(res, parameters);

                _db.SaveMail(res);  // сохраняем в бд
                                    // и сразу же получаем из базы этот объект, чтобы узнать его id.
                motskin_mails item = _db.GetMails().FirstOrDefault(x => x.createdUnique == guid);
                _logChangeStatus(item, "Статус изменен " + user.UserName);
            }
            catch (Exception ex)
            {
                _debug(ex, new { userName = user.UserName });
                msg = "Сбой при выполнении операции";
            }

            return(res);
        }
Beispiel #2
0
        public static bool DeleteMail(int id)
        {
            motskin_mails element = _mails.FirstOrDefault(p => p.id == id);

            if (element != null)
            {
                element.isDeleted = true;
                return(true);
            }
            return(false);
        }
Beispiel #3
0
        private void _fillMail(motskin_mails item, Dictionary <string, string> parameters)
        {
            foreach (var key in parameters.Keys)
            {
                switch (key)
                {
                case "fromAddress":
                    item.fromAddress = parameters[key];
                    break;

                case "toAddress":
                    item.toAddress = parameters[key];
                    break;

                case "trackNumber":
                    item.trackNumber = parameters[key];
                    break;

                case "backTrackNumber":
                    item.backTrackNumber = parameters[key];
                    break;

                case "description":
                    item.description = parameters[key];
                    break;

                case "sendSystemName":
                    item.sendSystemID = RDL.Convert.StrToInt(parameters[key], 0);
                    break;

                case "backDateReceived":
                    if (parameters[key] != "")
                    {
                        item.backDateReceived = RDL.Convert.StrToDateTime(parameters[key], new DateTime());
                    }
                    else
                    {
                        item.backDateReceived = null;
                    }
                    break;
                }
            }
        }
Beispiel #4
0
        public static int SaveMail(motskin_mails element, bool withSave = true)
        {
            element.motskin_mailStatuses = GetMailStatuses().FirstOrDefault(p => p.id == element.mailStatusID);
            element.motskin_sendSystems  = GetSendSystems().FirstOrDefault(p => p.id == element.sendSystemID);

            if (element.id == 0)
            {
                element.id = _mails.Count + 1;
                _mails.Add(element);
            }
            else
            {
                int pos = _mails.IndexOf(_mails.FirstOrDefault(p => p.id == element.id));
                if (pos >= 0)
                {
                    _mails[pos] = element;
                }
            }
            return(_mails.Count);
        }
Beispiel #5
0
        private bool _logChangeStatus(motskin_mails item, string note = "")
        {
            var res = false;

            try
            {
                _db.SaveMailStatusLog(new motskin_mailStatusLog
                {
                    created      = DateTime.Now,
                    mailStatusID = item.mailStatusID,
                    mailID       = item.id,
                    note         = note
                });
                res = true;
            }
            catch (Exception ex)
            {
                _debug(ex, new { mailID = item.id, statusID = item.mailStatusID, note });
            }
            return(res);
        }
Beispiel #6
0
        public int SaveMail(motskin_mails element, bool withSave = true)
        {
#if !PSEUDO
            if (element.id == 0)
            {
                db.motskin_mails.Add(element);
                if (withSave)
                {
                    Save();
                }
            }
            else
            {
                db.Entry(element).State = EntityState.Modified;
                if (withSave)
                {
                    Save();
                }
            }
            return(element.id);
#else
            return(PseudoData.SaveMail(element));
#endif
        }