public async Task <IActionResult> CreateRequest([FromForm] CreateRequestInput input) { Result <string> result = await _requestManager.CreateRequest(input); if (result.Success) { return(Ok(result)); } else { return(BadRequest(result)); } }
public async Task <Result <string> > CreateRequest(CreateRequestInput input) { Request request = new Request() { AdditionalRequests = input.AdditionalRequests, Date = input.Date, EventType = input.EventType, Location = input.Location, UserId = input.UserId, Time = input.Time, FirstName = input.FirstName, LastName = input.LastName, RequestStatus = RequestStatus.OnHold }; return(new Result <string>() { Success = true, Data = await _requestRepository.CreateAsync(request) }); }
public IHttpActionResult Post([FromBody] SubmitFormModel model) { if (ModelState.IsValid) { int tenantId; if (!int.TryParse(model.TenantId, out tenantId)) { return(BadRequest("Обратитесь в поддержку, не верный провайдер")); } if (_tenantManager.Tenants.ToList().All(x => x.Id != tenantId)) { return(BadRequest("Обратитесь в поддержку, не верный провайдер")); } var isLast15min = _requestRepository.GetAllList() .Any( x => x.TenantId == tenantId && x.Phone == model.Phone && x.Created.AddMinutes(15) > DateTime.UtcNow); //if (isLast15min) // return BadRequest("нельзя отправить более одного запроса в 15 минут"); var requestInput = new CreateRequestInput { Phone = model.Phone, Created = DateTime.UtcNow, Email = model.Email, Name = model.Name, State = State.NotAnswered, Question = model.Question, TenantId = tenantId }; var requestId = _requestAppService.CreateRequest(requestInput); ThreadPool.QueueUserWorkItem((object state) => { var request = requestInput.MapTo <Request>(); request.Id = requestId; foreach (var client in RequestHub.Users[request.TenantId].Values) { client.notifyAboutRequest(request); } }); if (!string.IsNullOrEmpty(model.Email)) { MailMessage mail = new MailMessage("*****@*****.**", model.Email); SmtpClient client = new SmtpClient("smtp-relay.gmail.com", 587) { EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential("*****@*****.**", "Today123!") }; mail.Subject = "запрос поступил"; mail.Body = string.Format($"Ваш запрос сохранен в базе данных и будет обработан оператором через некоторое время. Телефон № {model.Phone}. Комментарий к вопросу: {model.Question}"); client.Send(mail); } return(Ok("Запрос успешно принят")); } return(BadRequest("Не верные данные")); }
public long CreateRequest(CreateRequestInput input) { var request = input.MapTo <Request>(); return(_requestRepository.InsertAndGetId(request)); }