コード例 #1
0
        public ActionResult UploadFiles(string formPublicIdentifier)
        {
            foreach (string key in Request.Files.AllKeys)
            {
                if (files.ContainsKey(key))
                {
                    files[key] = new PostedFile(Request.Files[key]);
                }
                else
                {
                    files.Add(key, new PostedFile(Request.Files[key]));
                }
            }

            return(new EmptyResult());
        }
コード例 #2
0
        public ActionResult InsertFormData(FormInsertModel model)
        {
            List <InsertValidationModel> validation = new List <InsertValidationModel>();
            IFormDataCreator             creator    = DataService.CreateForm();

            SetPublicIdentifierStatus spi = creator.PublicIdentifier(model.FormPublicIdentifier);

            if (spi == SetPublicIdentifierStatus.NoSuchFormDefinition)
            {
                validation.Add(new InsertValidationModel(null, "NoSuchFormDefinition"));
            }

            if (!String.IsNullOrEmpty(model.ParentPublicIdentifier))
            {
                SetParentDataStatus spd = creator.Parent(model.ParentPublicIdentifier);
                switch (spd)
                {
                case SetParentDataStatus.NoSuchFormData:
                    validation.Add(new InsertValidationModel(null, "NoSuchFormData"));
                    break;

                case SetParentDataStatus.NoSuchFormDefinition:
                    validation.Add(new InsertValidationModel(null, "NoSuchFormDefinition"));
                    break;
                }
            }

            creator.Tag(model.FormTag);

            FormDefinition form = FormService.Get(model.FormPublicIdentifier);

            foreach (FieldInsertModel field in model.Fields)
            {
                FieldDefinition def = form.Fields.FirstOrDefault(f => f.PublicIdentifier == field.PublicIdentifier);
                AddFieldStatus  afs;

                if (def != null && def.FieldType == FieldType.FileField)
                {
                    PostedFile file = files[field.Value];
                    if (file != null)
                    {
                        afs = creator.AddField(field.PublicIdentifier, file.Name, file.ContentType, file.Stream.ToArray());
                        files.Remove(field.Value);
                    }
                    else
                    {
                        afs = AddFieldStatus.IncorrectValue;
                    }
                }
                else
                {
                    afs = creator.AddFieldConvert(field.PublicIdentifier, field.Value);
                }

                switch (afs)
                {
                case AddFieldStatus.NoSuchFormDefinition:
                    validation.Add(new InsertValidationModel(field.PublicIdentifier, "NoSuchFormDefinition"));
                    break;

                case AddFieldStatus.NoSuchFieldDefinition:
                    validation.Add(new InsertValidationModel(field.PublicIdentifier, "NoSuchFieldDefinition"));
                    break;

                case AddFieldStatus.IncorrectFieldType:
                    validation.Add(new InsertValidationModel(field.PublicIdentifier, "IncorrectFieldType"));
                    break;

                case AddFieldStatus.IncorrectValue:
                    validation.Add(new InsertValidationModel(field.PublicIdentifier, "IncorrectValue"));
                    break;
                }
            }

            //TODO: Handle reference field!

            if (validation.Count == 0)
            {
                CreateFormDataStatus status = creator.Save();
                switch (status)
                {
                case CreateFormDataStatus.InvalidCreator:
                    validation.Add(new InsertValidationModel(null, "InvalidCreator"));
                    break;
                }
            }

            if (validation.Count > 0)
            {
                //Response.StatusCode = 406;
                return(JsonP(new
                {
                    Errors = validation
                }));
            }

            DataService = DependencyResolver.Current.GetService <IFormDataService>(); //TODO: Never mind! 'Hack' for creating new DataContext
            return(GetFormData(model.FormPublicIdentifier, 1, 0));
        }
コード例 #3
0
ファイル: FormController.cs プロジェクト: jacklau88/Forms
        public ActionResult UploadFiles(string formPublicIdentifier)
        {
            foreach (string key in Request.Files.AllKeys)
            {
                if (files.ContainsKey(key))
                    files[key] = new PostedFile(Request.Files[key]);
                else
                    files.Add(key, new PostedFile(Request.Files[key]));
            }

            return new EmptyResult();
        }