예제 #1
0
        public ActionResult EditAccount(AccountViewModel acct)
        {
            if (!ModelState.IsValid)
            {
                return(View(acct));
            }

            var dbAcct = ModRepository.GetAccountById(acct.Id);

            if (dbAcct == null)
            {
                TempData["Message"] = "Conta não encontrada.";
                return(RedirectToAction("Index", "Home"));
            }

            dbAcct.Name          = acct.Name;
            dbAcct.SubdomainName = acct.Subdomain;

            if (Request.Files.Count > 0 &&
                Request.Files[0].ContentLength > 0)
            {
                var user    = Membership.GetUser() as UACUser;
                var imgInfo = user.SaveImage(Request.Files[0]);
                dbAcct.Logo = imgInfo.FullRelativePath;
            }

            ModRepository.Save();

            TempData["Message"] = "Dados salvos com sucesso!";
            return(RedirectToAction("ListAccounts"));
        }
예제 #2
0
        public ActionResult DeleteAccount(int id)
        {
            try {
                ModRepository.DeleteAccount(id);
                ModRepository.Save();
            }
            catch (Exception e) {
                TempData["Message"] = "Erro ao remover a conta: " + e.Message;
                return(RedirectToAction("ListAccounts"));
            }

            TempData["Message"] = "Conta removida com sucesso.";
            return(RedirectToAction("ListAccounts"));
        }
예제 #3
0
        public ActionResult Delete(int id)
        {
            var modToDelete = ModRepository.GetModuleById(id);

            if (modToDelete == null)
            {
                TempData["Message"] = "Módulo não encontrado.";
                return(RedirectToAction("Index", "Home"));
            }

            ModRepository.DeleteObject(modToDelete);
            ModRepository.Save();

            TempData["Message"] = "Módulo removido com sucesso.";
            return(RedirectToAction("Index", "Home"));
        }
예제 #4
0
        public ActionResult PersistRowOrder(FormCollection form)
        {
            int i = 0;

            foreach (string s in form["ids[]"].Split(",".ToCharArray()))
            {
                int id;
                if (Int32.TryParse(s, out id))
                {
                    var row = ModRepository.GetRowById(id);
                    row.SortIndex = i++;
                }
            }

            ModRepository.Save();

            return(Json(new { }));
        }
예제 #5
0
        public ActionResult Delete(int id)
        {
            Row row = ModRepository.GetRowById(id);

            if (row == null)
            {
                TempData["Message"] = "Registro não encontrado.";

                return(RedirectToAction("List"));
            }

            ModRepository.DeleteObject(row);

            ModRepository.Save();

            TempData["Message"] = "Registro removido com sucesso.";
            return(RedirectToAction("List"));
        }
예제 #6
0
        public ActionResult Register(string userName, string email, string password, string confirmPassword)
        {
            if (!CreateNewUser(userName, email, password, confirmPassword))
            {
                return(View());
            }

            var acctName = RouteData.Values["account"] as string;

            // associate the created user with the current account
            if (!String.IsNullOrWhiteSpace(acctName))
            {
                var createdUser = ModRepository.GetUserByName(userName);
                var acct        = ModRepository.GetAccountByName(acctName);

                acct.Users.Add(createdUser);

                ModRepository.Save();
            }

            TempData["Message"] = "Usuário " + userName + " criado com sucesso.";
            return(RedirectToAction("Index", "Home"));
        }
예제 #7
0
        public ActionResult CreateAccount(AccountViewModel acct, string userName, string email, string password, string confirmPassword)
        {
            if (!ModelState.IsValid)
            {
                return(View(acct));
            }

            var dbAcct = new Account {
                Name          = acct.Name,
                SubdomainName = acct.Subdomain,
                Plan          = ModRepository.GetPlanByName("Unlimited")
            };

            if (Request.Files.Count > 0 &&
                Request.Files[0].ContentLength > 0)
            {
                var user    = Membership.GetUser() as UACUser;
                var imgInfo = user.SaveImage(Request.Files[0]);
                dbAcct.Logo = imgInfo.FullRelativePath;
            }

            if (!CreateNewUser(userName, email, password, confirmPassword))
            {
                return(View(acct));
            }

            var createdUser = ModRepository.GetUserByName(userName);

            dbAcct.Users.Add(createdUser);

            ModRepository.AddAccount(dbAcct);
            ModRepository.Save();

            TempData["Message"] = "Conta criada com sucesso!";
            return(RedirectToAction("ListAccounts"));
        }
예제 #8
0
        public ActionResult DeleteField(int id)
        {
            var field = ModRepository.GetFieldById(id);

            if (field == null)
            {
                return(Json(new { result = -1, msg = "Erro: Campo não encontrado." }));
            }

            // check if the user is authorized to remove that field
            field.ModuleReference.Load();
            field.Module.AccountReference.Load();
            field.Module.Account.Users.Load();

            if (!field.Module.Account.Users.Any(u => u.UserName == Membership.GetUser().UserName))
            {
                return(Json(new { result = -1, msg = "Erro: O usuário não está autorizado a executar esta operação." }));
            }

            ModRepository.DeleteObject(field);
            ModRepository.Save();

            return(Json(new { result = 0, msg = "Campo removido com sucesso." }));
        }
예제 #9
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 }));
        }