Esempio n. 1
0
        public FakeModuleRepository()
        {
            AllModules = new List<IModule>();
            AllRows = new List<Row>();
            var converter = FieldValueConversion.GetConverter(Type.GetType("System.String"));
            int j = 100;
            int k = 200;
            int l = 300;
            int m = 400;
            for(int i = 0; i < 101; i++) {
                var module = new Module() {
                    DisplayName = "Test Module " + i,
                    ModuleName = "The-test-module-" + i,
                    Id = i,
                    ModuleType = i % 3,
                    User = new User() { UserId = FakeModuleMembership.FakeUserId }
                };

                var field = new Field() {
                    DisplayName = "Test field " + i,
                    FieldName = "TestField" + i,
                    ID = k--,
                    ShowInListMode = true,
                    IsRequired = true,
                    FieldDataType = new FieldDataType() {
                        Name = "System.String",
                        ID = l--,
                        FriendlyName = "Test data type " + i
                    }
                };

                module.Fields.Add(field);

                for (int z = 0; z < 20; z++) {
                    module.Rows.Add(new Row() {
                        ID = m--,
                        Cells = new EntityCollection<Cell>() {
                        new Cell() {
                            Data = converter.Serialize(new DynamicModuleField { Data = "Some data " + z }),
                            ID = j--,
                            Field = field
                        }}
                    });
                }

                AllModules.Add(module);
                AllRows.AddRange(AllModules.FirstOrDefault().Rows);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Create a new Field object.
 /// </summary>
 /// <param name="id">Initial value of the ID property.</param>
 /// <param name="showInListMode">Initial value of the ShowInListMode property.</param>
 /// <param name="displayName">Initial value of the DisplayName property.</param>
 /// <param name="fieldName">Initial value of the FieldName property.</param>
 /// <param name="isRequired">Initial value of the IsRequired property.</param>
 /// <param name="isReadOnly">Initial value of the IsReadOnly property.</param>
 public static Field CreateField(global::System.Int32 id, global::System.Boolean showInListMode, global::System.String displayName, global::System.String fieldName, global::System.Boolean isRequired, global::System.Boolean isReadOnly)
 {
     Field field = new Field();
     field.ID = id;
     field.ShowInListMode = showInListMode;
     field.DisplayName = displayName;
     field.FieldName = fieldName;
     field.IsRequired = isRequired;
     field.IsReadOnly = isReadOnly;
     return field;
 }
Esempio n. 3
0
 /// <summary>
 /// Deprecated Method for adding a new object to the Field EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToField(Field field)
 {
     base.AddObject("Field", field);
 }
Esempio n. 4
0
 /// <summary>
 /// Adds the provided field.
 /// </summary>
 /// <param name="_field">The field to be created</param>
 public void AddField(Field _field)
 {
     db.AddToField(_field);
 }
Esempio n. 5
0
 public void AddField(Field _field)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
        public ActionResult Create(ModulesViewModel _model)
        {
            if (!ModelState.IsValid) {
                _model.DataTypeList = GetDataTypeList();
                return View(_model);
            }

            if(_model.Fields.Count(f => f.ShowInListMode) == 0) {
                TempData["Message"] = "Pelo menos um dos campos deve ser visível na listagem.";
                _model.DataTypeList = GetDataTypeList();
                return View(_model);
            }

            // retrieve the current account name and associate with the newly created module
            var acctName = RouteData.Values["account"] as string;

            if (String.IsNullOrWhiteSpace(acctName)) {
                TempData["Message"] = "Conta não encontrada.";
                return View(_model);
            }

            Module newModule = new Module() {
                DisplayName = _model.DisplayName,
                ModuleName = _model.DisplayName.EscapeName(),
                User = ModRepository.GetUserByName(Membership.GetUser().UserName),	// associate the module with the current logged in user
                Account = ModRepository.GetAccountByName(acctName),
                ModuleType = _model.Type
            };

            _model.Fields.ToList().ForEach(f => {
                var newField = new Field {
                    DisplayName = f.FieldDisplayName,
                    FieldName = f.FieldDisplayName.EscapeName(),
                    FieldDataType = ModRepository.GetDataTypeByName(f.DataType),
                    IsReadOnly = f.IsReadOnly,
                    IsRequired = f.IsRequired,
                    ShowInListMode = f.ShowInListMode
                };

                if (f.Metadata != null) {
                    newField.AddMetadata(f.Metadata);
                }
                newModule.Fields.Add(newField);
            });

            ModRepository.AddModule(newModule);

            TempData["Message"] = "Módulo salvo com sucesso.";
            return RedirectToAction("Index", "Home");
        }
Esempio n. 7
0
        public ActionResult Edit(ModulesViewModel _model)
        {
            if (!ModelState.IsValid) {
                _model.DataTypeList = GetDataTypeList();
                return View(_model);
            }

            var modToEdit = ModRepository.GetModuleById(_model.Id,
                m => m.Fields.Include<Field, FieldDataType>(f => f.FieldDataType),
                m => m.Fields.Include<Field, FieldMetadata>(f => f.Metadata),
                m => m.Rows.Include<Row, Cell>(r => r.Cells));

            if (modToEdit == null) {
                TempData["Message"] = "Módulo não encontrado.";
                _model.DataTypeList = GetDataTypeList();
                return View(_model);
            }

            modToEdit.DisplayName = _model.DisplayName;

            if (_model.Fields.Count(f => f.ShowInListMode) == 0) {
                TempData["Message"] = "Pelo menos um dos campos deve ser visível na listagem.";
                _model.DataTypeList = GetDataTypeList();
                return View(_model);
            }

            // handle modified and added fields
            foreach (ModuleField f in _model.Fields) {
                Field dbField = modToEdit.Fields.FirstOrDefault(fld => fld.ID == f.ID);

                bool bNeedToAdd = (dbField == null);

                if (dbField == null) {
                    dbField = new Field();
                }

                if (!bNeedToAdd) {
                    dbField.FieldDataTypeReference.Load();
                    dbField.Metadata.Load();

                    if (dbField.FieldDataType.Name != f.DataType) {
                        // field type changed. set it to null on all matching rows
                        modToEdit.Rows.ToList().ForEach(r => {
                            r.Cells.Load();

                            r.Cells
                                .ToList()
                                .ForEach(rf => {
                                    rf.FieldReference.Load();

                                    if (rf.Field.FieldName == dbField.FieldName) {
                                        rf.Data = null;
                                    }
                                });
                        });
                    }
                }

                dbField.DisplayName = f.FieldDisplayName;
                dbField.FieldName = f.FieldDisplayName.EscapeName();
                dbField.FieldDataType = ModRepository.GetDataTypeByName(f.DataType);
                dbField.IsReadOnly = f.IsReadOnly;
                dbField.IsRequired = f.IsRequired;
                dbField.ShowInListMode = f.ShowInListMode;
                dbField.Module = modToEdit as Module;

                if (f.Metadata != null) {
                    dbField.AddMetadata(f.Metadata);
                }

                if (bNeedToAdd) {
                    ModRepository.AddField(dbField);

                    modToEdit.Rows.ToList()
                        .ForEach(row => {
                            Cell rf = new Cell() { Field = dbField, Row = row };
                            ModRepository.AddCell(rf);
                        });
                }
            }

            ModRepository.Save();

            TempData["Message"] = "Módulo salvo com sucesso.";
            return RedirectToAction("List", "DynamicModule", new { moduleid = _model.Id, modulename = modToEdit.ModuleName });
        }