コード例 #1
0
        public DtoActionResult AddModule(EntityPrinterModule module)
        {
            var validationResult = ValidateModule(module, true);
            var actionResult     = new DtoActionResult();

            if (validationResult.Success)
            {
                _uow.PrinterModuleRepository.Insert(module);

                var moduleType = new EntityModule();
                moduleType.ModuleType = EnumModule.ModuleType.Printer;
                moduleType.Guid       = module.Guid;
                _uow.ModuleRepository.Insert(moduleType);

                _uow.Save();
                actionResult.Success = true;
                actionResult.Id      = module.Id;
            }
            else
            {
                actionResult.ErrorMessage = validationResult.ErrorMessage;
            }

            return(actionResult);
        }
コード例 #2
0
ファイル: create.aspx.cs プロジェクト: theopenem/Toems
        protected void btnAdd_OnClick(object sender, EventArgs e)
        {
            var module = new EntityPrinterModule()
            {
                Name               = txtDisplayName.Text,
                Description        = txtDescription.Text,
                Action             = (EnumPrinterModule.ActionType)Enum.Parse(typeof(EnumPrinterModule.ActionType), ddlType.SelectedValue),
                NetworkPath        = txtPath.Text,
                IsDefault          = chkDefault.Checked,
                RestartSpooler     = chkRestartSpooler.Checked,
                WaitForEnumeration = chkEnumeration.Checked
            };


            var result = Call.PrinterModuleApi.Post(module);

            if (!result.Success)
            {
                EndUserMessage = result.ErrorMessage;
            }
            else
            {
                EndUserMessage = "Successfully Created Printer Module";
                Response.Redirect("~/views/modules/printermodules/general.aspx?printerModuleId=" + result.Id);
            }
        }
コード例 #3
0
        public DtoActionResult Post(EntityPrinterModule module)
        {
            var result = _printerModuleServices.AddModule(module);

            if (result.Success)
            {
                var auditLog = new EntityAuditLog();
                auditLog.ObjectType = "PrinterModule";
                auditLog.ObjectId   = result.Id;
                auditLog.ObjectName = module.Name;
                auditLog.ObjectJson = JsonConvert.SerializeObject(module);
                auditLog.UserId     = _userId;
                auditLog.AuditType  = EnumAuditEntry.AuditType.Update;
                _auditLogService.AddAuditLog(auditLog);
            }
            return(result);
        }
コード例 #4
0
        public DtoActionResult UpdateModule(EntityPrinterModule module)
        {
            var u = GetModule(module.Id);

            if (u == null)
            {
                return new DtoActionResult {
                           ErrorMessage = "Module Not Found", Id = 0
                }
            }
            ;
            var isActiveModule = new ServiceModule().IsModuleActive(module.Id, EnumModule.ModuleType.Printer);

            if (!string.IsNullOrEmpty(isActiveModule))
            {
                return new DtoActionResult()
                       {
                           ErrorMessage = isActiveModule, Id = 0
                       }
            }
            ;
            var validationResult = ValidateModule(module, false);
            var actionResult     = new DtoActionResult();

            if (validationResult.Success)
            {
                _uow.PrinterModuleRepository.Update(module, module.Id);

                _uow.Save();
                actionResult.Success = true;
                actionResult.Id      = module.Id;
            }
            else
            {
                actionResult.ErrorMessage = validationResult.ErrorMessage;
            }

            return(actionResult);
        }
コード例 #5
0
        public DtoActionResult Put(int id, EntityPrinterModule module)
        {
            module.Id = id;
            var result = _printerModuleServices.UpdateModule(module);

            if (result == null)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            }
            if (result.Success)
            {
                var auditLog = new EntityAuditLog();
                auditLog.ObjectType = "PrinterModule";
                auditLog.ObjectId   = result.Id;
                auditLog.ObjectName = module.Name;
                auditLog.ObjectJson = JsonConvert.SerializeObject(module);
                auditLog.UserId     = _userId;
                auditLog.AuditType  = EnumAuditEntry.AuditType.Create;
                _auditLogService.AddAuditLog(auditLog);
            }
            return(result);
        }
コード例 #6
0
        private DtoValidationResult ValidateModule(EntityPrinterModule module, bool isNew)
        {
            var validationResult = new DtoValidationResult {
                Success = true
            };

            if (string.IsNullOrEmpty(module.Name) || !module.Name.All(c => char.IsLetterOrDigit(c) || c == '_' || c == '-' || c == ' ' || c == '.'))
            {
                validationResult.Success      = false;
                validationResult.ErrorMessage = "Module Name Is Not Valid";
                return(validationResult);
            }

            if (isNew)
            {
                if (_uow.PrinterModuleRepository.Exists(h => h.Name == module.Name))
                {
                    validationResult.Success      = false;
                    validationResult.ErrorMessage = "A Module With This Name Already Exists";
                    return(validationResult);
                }
            }
            else
            {
                var originalModule = _uow.PrinterModuleRepository.GetById(module.Id);
                if (originalModule.Name != module.Name)
                {
                    if (_uow.PrinterModuleRepository.Exists(h => h.Name == module.Name))
                    {
                        validationResult.Success      = false;
                        validationResult.ErrorMessage = "A Module With This Name Already Exists";
                        return(validationResult);
                    }
                }
            }

            return(validationResult);
        }
コード例 #7
0
ファイル: ImportPolicy.cs プロジェクト: theopenem/Toems
        private DtoActionResult CreatePrinters()
        {
            foreach (var printerModule in _export.PrinterModules)
            {
                if (_export.Instructions.Contains("[generate-module-guid]"))
                {
                    printerModule.Guid = Guid.NewGuid().ToString();
                }

                if (_uow.PrinterModuleRepository.Exists(h => h.Guid.Equals(printerModule.Guid)))
                {
                    return(new DtoActionResult()
                    {
                        ErrorMessage = "A Printer Module With This Guid Already Exists.  " + printerModule.Guid
                    });
                }

                var printer = new EntityPrinterModule();
                printer.Name        = printerModule.DisplayName;
                printer.Description = "Added Via Policy Template " + _export.Name + "  On " + DateTime.Now +
                                      "\r\n" + printerModule.Description;
                printer.Guid               = printerModule.Guid;
                printer.Action             = printerModule.PrinterAction;
                printer.IsDefault          = printerModule.IsDefault;
                printer.NetworkPath        = printerModule.PrinterPath;
                printer.RestartSpooler     = printerModule.RestartSpooler;
                printer.WaitForEnumeration = printerModule.WaitForEnumeration;

                if (_uow.PrinterModuleRepository.Exists(h => h.Name.Equals(printer.Name)))
                {
                    for (var c = 1; c <= 100; c++)
                    {
                        if (c == 100)
                        {
                            return new DtoActionResult()
                                   {
                                       ErrorMessage = "Could Not Determine A Printer Name"
                                   }
                        }
                        ;

                        var newName = printer.Name + "_" + c;
                        if (!_uow.PrinterModuleRepository.Exists(h => h.Name == newName))
                        {
                            printer.Name = newName;

                            break;
                        }
                    }
                }

                var addResult = new ServicePrinterModule().AddModule(printer);
                if (!addResult.Success)
                {
                    return(addResult);
                }

                var policyModule = new EntityPolicyModules();
                policyModule.Guid                  = printer.Guid;
                policyModule.ModuleId              = addResult.Id;
                policyModule.ModuleType            = EnumModule.ModuleType.Printer;
                policyModule.Name                  = printer.Name;
                policyModule.Order                 = printerModule.Order;
                policyModule.PolicyId              = _policy.Id;
                policyModule.ConditionFailedAction = printerModule.ConditionFailedAction;
                policyModule.ConditionNextModule   = printerModule.ConditionNextOrder;


                var conditionId = CreateCondition(printerModule.Condition);
                if (conditionId != 0)
                {
                    policyModule.ConditionId = conditionId;
                }
                else
                {
                    policyModule.ConditionId = -1;
                }

                _uow.PolicyModulesRepository.Insert(policyModule);
            }

            return(new DtoActionResult()
            {
                Success = true
            });
        }