public async Task <IActionResult> PostPerson([FromForm] PersonCreationDTOs personCreationDtOs) { //مدل خالی هست من باید مدل جدید بسازم از این بخش استفاده میکنم var person = _mapper.Map <Person>(source: personCreationDtOs); #region SaveFile //این کار بعد از mapper انجام شد چون در mapper بهش گفتم که ignore کن من خودم داخلش میریزم. if (personCreationDtOs.Picture != null) { using (var memoryStream = new MemoryStream()) { await personCreationDtOs.Picture.CopyToAsync(memoryStream); //content var content = memoryStream.ToArray(); //extension var extension = Path.GetExtension(personCreationDtOs.Picture.FileName); /*var extension = personCreationDtOs.Picture.FileName.Split(".")[1];*/ person.Picture = await _fileStorageService .SaveFile(content : content, extension : extension, containerName : ContainerName, contentType : personCreationDtOs.Picture.ContentType); } } #endregion await _context.Person.AddAsync(person); await _context.SaveChangesAsync(); var personDtOs = _mapper.Map <PersonDtos>(source: person); return(CreatedAtAction("GetPerson", new { id = person.Id }, personDtOs)); }
public async Task <IActionResult> PutPerson([FromRoute] int id, [FromForm] PersonCreationDTOs personCreationDtOs) { var personDb = await _context.Person.FindAsync(id); if (personDb == null) { return(NotFound()); } //مدل پر هست فقط میخواهم اطلاعات جدیدش را آپدیت کنم //مقدار picture را در سمت AutoMapper بهش گفتم برام Ignore کن واسه همین باید خودم پرش کنم personDb = _mapper.Map(source: personCreationDtOs, destination: personDb); #region EditFile //این کار بعد از mapper انجام شد چون در mapper بهش گفتم که ignore کن من خودم داخلش میریزم. if (personCreationDtOs.Picture != null) { using (var memoryStream = new MemoryStream()) { await personCreationDtOs.Picture.CopyToAsync(memoryStream); //content var content = memoryStream.ToArray(); //extension var extension = Path.GetExtension(personCreationDtOs.Picture.FileName); /*var extension = personCreationDtOs.Picture.FileName.Split(".")[1];*/ personDb.Picture = await _fileStorageService .EditFile(content : content, extension : extension, containerName : ContainerName, fileRoute : personDb.Picture, contentType : personCreationDtOs.Picture.ContentType); } } #endregion _context.Entry(personDb).State = EntityState.Modified; await _context.SaveChangesAsync(); return(Ok(personDb)); }