public async Task <IActionResult> Post([FromBody] ImageModel model) { try { // Ensure the directory is created var directory = $"{_hostingEnvironment.WebRootPath}/images/blog"; System.IO.Directory.CreateDirectory(directory); // Add the file to the posts directory var uri = $"/images/blog/{model.Title}.jpg"; var absolutePath = $"{_hostingEnvironment.WebRootPath}{uri}"; await System.IO.File.WriteAllBytesAsync(absolutePath, model.PictureBytes); var image = new Image { Title = model.Title, Caption = model.Caption, Uri = uri }; _applicationUnitOfWork.Images.Add(image); _applicationUnitOfWork.Commit(); return(Created(uri, image.Id)); } catch { return(StatusCode(500, new { Errors = new[] { "Internal server error" } })); } }
public async Task <IActionResult> Post([FromBody] EditablePostModel model) { try { var post = new Post { CreatedOn = DateTime.UtcNow }; if (model.Id != Guid.Empty) { var posts = await _applicationUnitOfWork.Posts.GetWithCategory(x => x.Id == model.Id); if (posts == null || posts.Count() == 0) { return(NotFound()); } post = posts.First(); } var blurb = model.Blurb; if (string.IsNullOrEmpty(blurb)) { blurb = Regex.Replace(model.Content, "<.*?>", string.Empty); blurb = blurb.Substring(0, Math.Min(blurb.Length, 160)); } var category = _applicationUnitOfWork.Categories.GetAll().FirstOrDefault(x => x.Id == model.CategoryId); post.Title = model.Title; post.Blurb = blurb; post.Category = category; post.Content = model.Content; post.ModifiedOn = DateTime.UtcNow; post.Raw = model.Raw; post.Tags = ""; if (model.Tags != null && !string.IsNullOrEmpty(model.Tags.Trim())) { var tags = model.Tags.Split(',').Select(x => x.Trim()); post.Tags = string.Join(",", tags); } if (model.Id != Guid.Empty) { _applicationUnitOfWork.Posts.Update(post); } else { _applicationUnitOfWork.Posts.Add(post); } _applicationUnitOfWork.Commit(); return(Json(_mapper.Map <EditablePostModel>(post))); } catch (Exception e) { _logger.LogError($"Fatal error: {e}"); return(StatusCode(500, new { Errors = new[] { "Internal server error" } })); } }
public async Task <PersonViewModel> Handle(Command request, CancellationToken cancellationToken) { try { var person = _persons.Get(request.PersonId); if (person != null) { person.FirstName = request.FirstName; person.LastName = request.LastName; person.Gender = (Gender)int.Parse(request.Gender); person.UpdatedAt = DateTimeOffset.Now; person.UpdatedBy = request.GetUserName(); _persons.Update(person); await _unitOfWork.Commit(); return(_mapper.Map <PersonViewModel>(person)); } throw new CustomException( statusCode: HttpStatusCode.NotFound, message: $"Person with Id {request.PersonId} was not found from the database."); } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <PersonViewModel> Handle(Command request, CancellationToken cancellationToken) { try { var person = await _persons.AddAsync(new Person { FirstName = request.FirstName, LastName = request.LastName, Gender = (Gender)int.Parse(request.Gender), CreatedBy = request.GetUserName() }); await _unitOfWork.Commit(); return(_mapper.Map <PersonViewModel>(person)); } catch (Exception e) { Console.WriteLine(e); throw; } }