private MailMessage SetRequestStateRequesterEmail(Request request,
                                                          RequestStateType requestStateType,
                                                          string agreementReason)
        {
            var requester = request.User;
            var subject   = string.Format("Изменен статус заявки №{0} {1}",
                                          request.IdRequest, request.RequestType.Name.ToLower());
            var body = string.Format("Здравствуйте, {0}!<br>{1} на <b>«{2}»</b>.",
                                     requester.Snp, subject, RequestHelper.VerbRequestState(requestStateType.Name).ToLower());

            if (!string.IsNullOrEmpty(agreementReason) && requestStateType.IdRequestStateType == 5)
            {
                body += "<br><br><b>Причина: </b>" + agreementReason;
            }
            body += GetRequestDescriptionPart(request);
            body += GetRequestLink(request);
            var message = new MailMessage
            {
                IsBodyHtml = true,
                From       = _from,
                Subject    = subject,
                Body       = body
            };

            message.To.Add(new MailAddress(requester.Email));
            return(message);
        }
        private MailMessage SetRequestStateDispatcherEmail(Request request,
                                                           RequestStateType requestStateType,
                                                           string agreementReason, AclUser user)
        {
            var subject = string.Format("Изменен статус заявки №{0} {1}",
                                        request.IdRequest, request.RequestType.Name.ToLower());
            var body = string.Format("Здравствуйте, {0}!<br>{1} на <b>«{2}»</b>.", user.Snp, subject,
                                     RequestHelper.VerbRequestState(requestStateType.Name).ToLower());

            if (requestStateType.IdRequestStateType == 2)
            {
                if (request.RequestAgreements.Any(r => r.IdAgreementType == 2) &&
                    request.RequestAgreements.Where(r => r.IdAgreementType == 2).
                    All(r => r.IdAgreementState != 1))
                {
                    subject = string.Format("По заявке №{0} {1} завершено дополнительное согласование",
                                            request.IdRequest, request.RequestType.Name.ToLower());
                }
                else
                {
                    subject = string.Format("Поступила заявка №{0} {1}",
                                            request.IdRequest, request.RequestType.Name.ToLower());
                }
                body = string.Format("Здравствуйте, {0}!<br>{1}.", user.Snp, subject);
            }
            if (!string.IsNullOrEmpty(agreementReason) && requestStateType.IdRequestStateType == 5)
            {
                body += "<br><br><b>Причина: </b>" + agreementReason;
            }
            body += GetRequestDescriptionPart(request);
            body += GetRequestLink(request);
            var message = new MailMessage
            {
                IsBodyHtml = true,
                From       = _from,
                Subject    = subject,
                Body       = body
            };

            message.To.Add(new MailAddress(user.Email));
            return(message);
        }