Ejemplo n.º 1
0
        public IActionResult Add(SavePublicationStringVM savePublicationString)
        {
            SavePublicationVM savePublication = new SavePublicationVM
            {
                Id                  = savePublicationString.publicationId,
                TemplateId          = savePublicationString.TemplateId,
                Title               = savePublicationString.Title,
                BranchesOfKnowledge = Newtonsoft.Json.JsonConvert.DeserializeObject <List <BranchOfKnowledge> >(savePublicationString.BranchesOfKnowledge),
                Authors             = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Author> >(savePublicationString.Authors),
                FieldsValue         = Newtonsoft.Json.JsonConvert.DeserializeObject <List <FieldValueVM> >(savePublicationString.FieldsValue)
            }; //TODO move mapping to service (or not move :D)

            foreach (var file in Request.Form.Files)
            {
                if (file.Length > 0)
                {
                    string         path           = @"PublicationsFiles\" + Guid.NewGuid();
                    string         name           = file.FileName;
                    FileProperties fileProperties = new FileProperties()
                    {
                        FilePath = path, FileName = name
                    };
                    if (!Directory.Exists("PublicationsFiles"))
                    {
                        Directory.CreateDirectory("PublicationsFiles");
                    }
                    using (FileStream fs = System.IO.File.Create(path))
                    {
                        file.CopyTo(fs);
                    }
                    FieldValueVM fieldValue = new FieldValueVM()
                    {
                        FieldType = FieldType.File, Name = file.Name, Value = Newtonsoft.Json.JsonConvert.SerializeObject(fileProperties), isChecked = false
                    };
                    savePublication.FieldsValue.Add(fieldValue);
                }
            }
            bool isDone;

            if (savePublication.Id == 0)
            {
                isDone = publicationService.AddPublication(savePublication);
            }
            else
            {
                isDone = publicationService.EditPublication(savePublication);
            }
            if (isDone)
            {
                return(Json(new { success = true, message = "Zapisano pomyślnie!" }));
            }
            else
            {
                return(Json(new { success = false, message = "Wystąpił błąd w zapisie!" }));
            }
        }