示例#1
0
        public async Task SendMessage(SendMessageVM data)
        {
            var connection = Connection;

            if (!connection.Equals(default(SignalRConnection)) && !connection.GroupId.IsNullOrEmptyGuid())
            {
                var group = _groupCache.GetById(GetKeyForGroup(connection.GroupId.Value));
                if (group.Equals(default(SignalRGroup)))
                {
                    SentrySdk.CaptureException(new Exception(APIStatusCode.ERR04007));
                    return;
                }

                var dbResult = await _service.AddAsync(new MessageAddVM()
                {
                    ChatRoomId = connection.GroupId.Value,
                    Text       = data.Text
                }, connection.UserId);

                if (dbResult.ResultIsNotTrue())
                {
                    SentrySdk.CaptureException(new Exception(APIStatusCode.ERR04008));
                    return;
                }

                await Clients.Group(connection.GroupId.Value.ToString()).SendAsync("ReceiveMessage", data.Text);
            }
        }
示例#2
0
        public async Task <ActionResult> SendMessage([Bind(Include = "ID,ReceiverID,MyContents")] SendMessageVM message)
        {
            if (!ModelState.IsValid)
            {
                return(View(message));
            }
            Users user = await _unitOfWork.usersRolesRepo.GetAsync(message.ReceiverID);

            if (user == null)
            {
                ModelState.AddModelError(string.Empty, "User does not exist.");
                return(View(message));
            }
            string   myName    = User.Identity.GetUserName();
            Messages myMessage = CreateMessage(myName, message.ReceiverID, message.MyContents);
            bool     response  = await _messageRest.SendAsync(myMessage);

            if (response)
            {
                _unitOfWork.messagesRepo.Add(myMessage);
                await _unitOfWork.SaveAsync();

                return(RedirectToAction("Inbox"));
            }
            return(View(myMessage));
        }
        public IActionResult SendMessage(SendMessageVM model)
        {
            bool success;
            var  message = string.Empty;

            try
            {
                if (!model.IsNotRobot)
                {
                    message = "Confirm that you are not a robot!";
                    success = false;
                }
                else if (ModelState.IsValid)
                {
                    var supportMessage = new SupportMessage
                    {
                        Email   = model.Email,
                        Message = model.Message,
                        Name    = model.Name
                    };
                    success = UnitOfWork.SupportMessages.Merge(supportMessage);
                }
                else
                {
                    message = ModelState.GetHtmlErrors();
                    success = false;
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = "An error occurred while sending! Contact Support.";
            }
            return(Json(new { success, message }));
        }
示例#4
0
        public void MessageFromSite(SendMessageVM model, MailAddress to,
                                    MailAddress copy = null)
        {
            var isRus = Linguistics.IsRussian(model.Title) || Linguistics.IsRussian(model.Message);

            model.Title = "[Сообщение с сайта]" + model.Title;
            if (!model.Email.IsEmpty())
            {
                model.Title += ". От " + model.Email;
            }
            if (!model.SenderName.IsEmpty())
            {
                model.Message += Br + model.SenderName.Tag("strong");
            }
            var copyList = copy == null ? new MailAddress[0]: new[] { copy };

            if (isRus)
            {
                Send(info, to, model.Message, model.Title, copyList);
            }
            else
            {
                Send(info, ptolochko, model.Message, "[FILTER]" + model.Title);
            }
        }
示例#5
0
        public IActionResult SendMessage(SendMessageVM model)
        {
            bool success;
            var  message = string.Empty;

            try
            {
                if (!model.IsNotRobot)
                {
                    message = "Подтвердите, что Вы не робот!";
                    success = false;
                }
                else if (ModelState.IsValid)
                {
                    var supportMessage = new SupportMessage
                    {
                        Email   = model.Email,
                        Message = model.Message,
                        Name    = model.Name
                    };
                    success = UnitOfWork.SupportMessages.Merge(supportMessage);
                }
                else
                {
                    message = ModelState.GetHtmlErrors();
                    success = false;
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = "При отправке произошла ошибка! Обратитесь в службу поддержки.";
            }
            return(Json(new { success, message }));
        }
示例#6
0
        public ActionResult SendInviteManager()
        {
            var model = new SendMessageVM {
                Type = SendMessageVM.InviteManager
            };

            model.Title = "Приглашение на переговоры";
            return(BaseView(Views.Page.SendMessage, model));
        }
        public ActionResult SendMessage(SendMessageVM sendMessageVM)
        {
            var message = new Message
            {
                Email = sendMessageVM.Email,
                Name  = sendMessageVM.Name,
                Phone = sendMessageVM.Phone,
                Text  = sendMessageVM.Text
            };

            try
            {
                unitOfWork.Messages.Insert(message);
            }
            catch (Exception)
            {
                return(Redirect("Index"));
            }
            return(View("Contact"));
        }
        /// <summary>
        /// This action fetches all users currently in the Db and returns
        /// all but the user invoking this action
        /// </summary>
        /// <returns></returns>
        public IActionResult SendMessage()
        {
            List <User> allUsers = _userHandler.GetAllUsersList();
            List <SendMessageUserVM> allUserVMs = new List <SendMessageUserVM>();

            foreach (User user in allUsers)
            {
                if (user.UserID != _userManager.GetUserId(HttpContext.User))
                {
                    allUserVMs.Add(new SendMessageUserVM {
                        UserID   = user.UserID,
                        Username = user.Username
                    });
                }
            }
            SendMessageVM sendMessage = new SendMessageVM {
                Users = allUserVMs
            };

            return(View(sendMessage));
        }
示例#9
0
        public async Task <ActionResult> SendMessage(int?id)
        {
            SendMessageVM reply  = new SendMessageVM();
            string        myName = User.Identity.GetUserName();

            if (id == null)
            {
                reply.Contents = null;
                return(View(reply));
            }
            Messages message = await _unitOfWork.messagesRepo.GetAsync((int)id);

            if (message == null)
            {
                return(HttpNotFound());
            }
            reply.ReceiverID = message.ReceiverID == myName ? message.SenderID : message.ReceiverID;
            reply.ID         = message.ID;
            reply.Contents   = message.Contents;
            return(View(reply));
        }
示例#10
0
        public ActionResult SendForWebMaster(SendMessageVM model)
        {
            if (isSpam(model.Message))
            {
                return(null);
            }
            if (model.Type.In(SendMessageVM.InviteManager,
                              SendMessageVM.SendToLeader))
            {
                MailService.SendForOrgManager(model.Message, model.Title);
            }
            else
            {
                MailAddress copy = null;
                if (model.Email.IsEmpty() && User != null)
                {
                    model.Email = User.Email;
                }
                if (User != null)
                {
                    model.SenderName = User.FullName;
                }
                var email = Services.Common.MailService.contmanagers;
                switch (model.Type)
                {
                case SendMessageVM.Promocode:
                    email = Services.Common.MailService.promocode;
                    break;

                case SendMessageVM.ForManager:
                    copy  = Services.Common.MailService.info;
                    email = new MailAddress(
                        EmployeeService.GetByPK(model.EmployeeTC).FirstEmail);
                    break;

                case SendMessageVM.CourseIdea:
                    email = Services.Common.MailService.courseIdea;
                    break;

                case SendMessageVM.MobileAppReview:
                    email = Services.Common.MailService.motorina;
                    copy  = Services.Common.MailService.ptolochko;
                    break;

                case SendMessageVM.CatalogIdea:
                    email = Services.Common.MailService.site;
                    break;

                case SendMessageVM.TestResponse:
                    email = Services.Common.MailService.testresponse;
                    break;

                case SendMessageVM.WebinarSpecial:
                    email = Services.Common.MailService.info;
                    break;

                case SendMessageVM.CourseTender:
                    email = Services.Common.MailService.corporatedepartment;
                    break;

                case SendMessageVM.EnglishOrder:
                    email          = Services.Common.MailService.karpovich;
                    model.Message += "<br/>" + Url.TestRun().Result(
                        StringUtils.ParseInt(model.CustomValue).GetValueOrDefault(),
                        "Ссылка на результат тестирования").AbsoluteHref();
                    break;

                case SendMessageVM.DevIdea:
                    email = Services.Common.MailService.devidea;
                    break;

                case SendMessageVM.JobVacancy:
                    email = Services.Common.MailService.job;
                    break;

                case SendMessageVM.JobManager:
                    email = Services.Common.MailService.job;
                    break;

                case SendMessageVM.CareerDay:
                    email = Services.Common.MailService.job;
                    break;

                default:
                    copy = Services.Common.MailService.ptolochko;
                    break;
                }
                MailService.MessageFromSite(model, email, copy);
            }
            return(AjaxOk());
        }