Esempio n. 1
0
        public async Task <IActionResult> Post(string nombre_especie, string familia, List <string> descripciones,
                                               List <IFormFile> archivos)
        {
            string filePath;
            Task   result;

            Specie spe = new Specie();

            spe.Name    = nombre_especie;
            spe.Family  = familia;
            spe.Gallery = new List <Photo>();
            result      = _SpecieRepository.Add(spe);

            Core.MakeSpecieFolder(spe.Id.ToString());

            for (int i = 1; i < (archivos.Count + 1); i++)
            {
                Photo photo = new Photo();
                photo.Description = descripciones[i - 1];
                _PhotoRepository.Add(photo);
                _SpecieRepository.AddPhoto(spe.Id, photo);
                string[] extension = (archivos[i - 1].FileName).Split('.');
                filePath = Path.Combine(Core.SpecieFolderPath(spe.Id.ToString()), photo.Id.ToString() + "." + extension[1]);
                if (archivos[i - 1].Length > 0)
                {
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await archivos[i - 1].CopyToAsync(stream);
                    }
                }
            }

            if (result.Status == TaskStatus.RanToCompletion || result.Status == TaskStatus.Running ||
                result.Status == TaskStatus.Created || result.Status == TaskStatus.WaitingToRun)
            {
                TempData["creacion"] = 1;
            }
            else
            {
                TempData["creacion"] = -1;
            }

            return(Redirect("/api/bpv/specie/index/"));
        }