Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }