コード例 #1
0
        /// <summary>
        /// Register custom variables and functions as the object 'reko' in the global context
        /// </summary>
        public void RegisterGlobals()
        {
            context.Acquire(() => {
                var global  = context.GetGlobal();
                var rekoObj = CefV8Value.CreateObject();

                var dumpBytesFn      = new Proto_DumpBytes(decompiler);
                var procListRenderer = new ProcedureListRenderer(decompiler);

                global.SetValue("reko", rekoObj);
                RegisterAsyncFunction(rekoObj, "OpenFile", new OpenFileHandler(promiseFactory, pendingPromises));
                RegisterAsyncFunction(rekoObj, "Proto_DisassembleRandomBytes", new Func <string, string, string>(Proto_DisassembleRandomBytes.Execute));
                RegisterAsyncFunction(rekoObj, "Proto_GeneratePng", new Func <int, byte[]>(Proto_GeneratePng.Execute));
                RegisterAsyncFunction(rekoObj, "LoadFile", new Func <string, string?, Address?, bool>(decompiler.Load));
                RegisterAsyncFunction(rekoObj, "Scan", new Action(decompiler.ScanPrograms));
                RegisterAsyncFunction(rekoObj, "DumpBytes", new Func <string, string, long, string>(dumpBytesFn.Execute));
                RegisterAsyncFunction(rekoObj, "GetProcedureList", new Func <string, string>(procListRenderer.Render));
                RegisterFunction(rekoObj, "TestListener", new Action(() =>
                {
                    var listener = services.RequireService <DecompilerEventListener>();
                    listener.Info(new NullCodeLocation("web"), "Hello World");
                }));
                RegisterFunction(rekoObj, "RegisterEventListener", new Proto_RegisterEventListener(eventListeners));
                RegisterFunction(rekoObj, "RenderProjectView", new Func <string>(() => ProjectViewRenderer.RenderToHtml(decompiler)));
                RegisterFunction(rekoObj, "RenderProcedure", new Func <CefV8Value, CefV8Value>((CefV8Value key) =>
                {
                    var iKey = key.GetIntValue();
                    var proc = new ProcedureViewModel(iKey);
                    var obj  = CefV8Value.CreateObject();
                    obj.SetValue("name", CefV8Value.CreateString(proc.Name));
                    obj.SetValue("body", CefV8Value.CreateString(proc.Body));
                    return(obj);
                }));
            });
        }
        //編輯頁面 > 取得簽核代碼資料
        public ProcedureViewModel GetProcedureData(string signID)
        {
            ProcedureViewModel model  = null;
            string             strSQL = @"Select * from SignProcedure where SignID = @SignID";
            var strCondition          = new Conditions()
            {
                { "@SignID", signID }
            };

            var result = _dc.QueryForDataRow(strSQL, strCondition);

            if (result == null)
            {
                return(null);
            }

            model = new ProcedureViewModel()
            {
                SignID       = result["SignID"].ToString(),
                SignLevel    = Int32.Parse(result["SignLevel"].ToString()),
                MaxLevel     = Int32.Parse(result["MaxLevel"].ToString()),
                Disabled     = "True".Equals(result["Disabled"].ToString()),
                DisabledDate = !result["DisabledDate"].IsDBNullOrWhiteSpace() ? DateTime.Parse(result["DisabledDate"].ToString()) : (DateTime?)null,
                Modifier     = result["Modifier"].ToString(),
                ModifyDate   = !result["ModifyDate"].IsDBNullOrWhiteSpace() ? DateTime.Parse(result["ModifyDate"].ToString()) : DateTime.Parse(result["CreateDate"].ToString()),
                TimeStamp    = (result["ModifyDate"].IsDBNullOrWhiteSpace() ? result["CreateDate"].ToString() : result["ModifyDate"].ToString()).ToDateFormateString(),
            };

            return(model);
        }
コード例 #3
0
 private void buttonDel_Click(object sender, RoutedEventArgs e)
 {
     if (dataGridProcedures.SelectedCells.Count != 0)
     {
         var result = MessageBox.Show("Удалить запись", "Вопрос", MessageBoxButton.YesNo,
                                      MessageBoxImage.Question);
         if (result == MessageBoxResult.Yes)
         {
             try
             {
                 var cellInfo = dataGridProcedures.SelectedCells[0];
                 ProcedureViewModel content = (ProcedureViewModel)(cellInfo.Item);
                 int id = Convert.ToInt32(content.Id);
                 logic.Delete(new ProcedureBindingModel {
                     Id = id
                 });
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK,
                                 MessageBoxImage.Error);
             }
             LoadData();
         }
     }
 }
コード例 #4
0
        public async Task <ActionResult <IEnumerable <IOSDevice> > > GetIOSDevices()
        {
            ProcedureViewModel pvm = new ProcedureViewModel();

            //pvm.Procedures = await _context.IOSDevices.ToListAsync();
            return(await _context.IOSDevices.ToListAsync());
        }
コード例 #5
0
        public async Task <ActionResult> CreateProcedure(ProcedureViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.Error = CreateError();
                return(View("Error"));
            }
            try
            {
                var procedureDto = Mapper.Map <ProcedureViewModel, ProcedureDTO>(model);
                _procedureService.AddItem(procedureDto);
                _procedureService.Commit();

                TempData["Success"] = Resources.Messages.ProcedureCreatedSuccess;
                await SenEmailAboutAddProcedure(model);

                _currentUser = GetCurrentUser();
                Logger.Log.Info($"{_currentUser.Email} Added Procedure for Product #{procedureDto.ProductId} {procedureDto.ProcedureType}");
                return(RedirectToAction("ProductProcedures", new { id = model.ProductId }));
            }
            catch (Exception ex)
            {
                @ViewBag.Error = ex.ToString();
                return(View("Error"));
            }
        }
コード例 #6
0
        public ActionResult CreateProcedure(int id)
        {
            if (id == 0)
            {
                @ViewBag.Error = "No productId in request!";
                return(View("Error"));
            }
            try
            {
                var model        = new ProcedureViewModel();
                var productDto   = _productService.GetProduct(id);
                var product      = Mapper.Map <ProductDTO, ProductViewModel>(productDto);
                var _currentUser = GetCurrentUser();
                model.Product   = product;
                model.ProductId = id;

                ViewBag.CountryId = productDto.CountryId;
                ViewBag.Product   = product;

                ViewBag.Country = product.Country;
                ViewBag.Product = product;
                ViewBag.User    = _currentUser;
                return(View(model));
            }
            catch (Exception e)
            {
                @ViewBag.Error = e.Message;
                return(View("Error"));
            }
        }
コード例 #7
0
        public ActionResult Edit(ProcedureViewModel procedureVM)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.proceduretypelist = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "Procedure Type" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue");

                return(View(procedureVM));
            }
            if (procedureVM == null)
            {
                return(new HttpStatusCodeResult(422));
            }

            if (!_projectuservalidationservice.UserCanEditProject(procedureVM.MultiPARTProjectID))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            Procedure procedure = db.Procedures.Find(procedureVM.ProcedureID);

            procedure.ProcedureLabel  = procedureVM.ProcedureLabel;
            procedure.ProcedureTypeID = procedureVM.ProcedureTypeID;
            procedure.MultiPARTProjectMultiPARTProjectID = procedureVM.MultiPARTProjectID;
            procedure.Details = procedureVM.Details;

            db.SaveChanges();
            return(RedirectToAction("Details", "MultiPARTProject", new { projectid = procedureVM.MultiPARTProjectID }));
        }
コード例 #8
0
        public async Task <IActionResult> Create([Bind("Procedures,Procedure,NewSearch,NewToDo,ToDos")] ProcedureViewModel pvm)
        {
            Procedure procedure = new Procedure();

            if (ModelState.IsValid)
            {
                procedure.Id     = pvm.Procedure.Id;
                procedure.Name   = pvm.Procedure.Name;
                procedure.Notes  = pvm.Procedure.Notes;
                procedure.Action = pvm.Procedure.Action;

                //if (pvm.ToDos.Count() > 0)
                //{
                //    foreach(ToDo todo in pvm.ToDos)
                //    {
                //        procedure.ActionList.Append(todo);
                //    }
                //}

                _context.Add(procedure);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(procedure));
        }
コード例 #9
0
        //
        // GET: /Procedure/Edit/5

        public ActionResult Edit(int procedureid)
        {
            Procedure procedure = db.Procedures.Find(procedureid);

            if (procedure == null)
            {
                return(new HttpStatusCodeResult(422));
            }

            if (!_projectuservalidationservice.UserCanEditProject(procedure.MultiPARTProjectMultiPARTProjectID))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            ProcedureViewModel procedureVM = new ProcedureViewModel()
            {
                ProcedureID        = procedure.ProcedureID,
                ProcedureTypeID    = procedure.ProcedureTypeID,
                ProcedureLabel     = procedure.ProcedureLabel,
                MultiPARTProjectID = procedure.MultiPARTProjectMultiPARTProjectID,
                ProcedurePurposeID = procedure.ProcedureID,
                Details            = procedure.Details,
                ProcedureTypeList  = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "Procedure Type" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue")
            };

            return(View(procedureVM));
        }
コード例 #10
0
        // GET: Procedures/Create
        public IActionResult Create()
        {
            ProcedureViewModel pvm = new ProcedureViewModel();

            pvm.ToDos = new DynamicVML.DynamicList <ToDo>();
            return(View(pvm));
        }
コード例 #11
0
        // GET: Procedure/Create
        public ActionResult Create()
        {
            var procedure = new ProcedureViewModel();

            procedure.Medicines = _mapper.Map <IEnumerable <Medicine>, IEnumerable <MedicineViewModel> >(_medicineRepository.GetAll());
            return(View(procedure));
        }
コード例 #12
0
        public ActionResult Update(ProcedureViewModel procedure)
        {
            var procedureToAdd = Mapper.Map <ProcedureViewModel, Procedure>(procedure);

            _procedureService.Update(procedureToAdd);

            return(RedirectToAction("Get"));
        }
コード例 #13
0
        public ActionResult SaveProcedure(ProcedureViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false));
            }
            var response = _lookupService.MapViewModelToProcedure(model, CurrentUserName, true);

            return(Json(response > 0));
        }
コード例 #14
0
        private ProcedureViewModel ConvertProcedureToProcedureViewModel(Procedure procedure)
        {
            ProcedureViewModel procedureViewModel = new ProcedureViewModel()
            {
                ProcedureId   = procedure.ProcedureId,
                ProcedureName = procedure.ProcedureName
            };

            return(procedureViewModel);
        }
コード例 #15
0
 public ActionResult UpdateProcedure(ProcedureViewModel procedureViewModel)
 {
     if (ModelState.IsValid)
     {
         _procedureProvider.UpdateProcedure(procedureViewModel.ProcedureId, procedureViewModel.ProcedureName);
         return(Redirect("~/Procedure/ProceduresList"));
     }
     else
     {
         return(View("GetProcedure", procedureViewModel));
     }
 }
コード例 #16
0
        public async Task <IActionResult> EnteredForThePeriod(string buildingName = "", string d0 = "01.01.1970", string d = "01.01.2030", int page = 1)
        {
            int             pageSize = 10; // количество элементов на странице
            List <object[]> source   = new List <object[]>();

            using (var command = db.Database.GetDbConnection().CreateCommand())
            {
                DbParameter parameter = command.CreateParameter();
                parameter.DbType        = System.Data.DbType.String;
                parameter.ParameterName = "@building_name";
                parameter.Value         = buildingName;
                command.Parameters.Add(parameter);
                DbParameter parameter2 = command.CreateParameter();
                parameter2.DbType        = System.Data.DbType.String;
                parameter2.ParameterName = "@d0";
                parameter2.Value         = d0;
                command.Parameters.Add(parameter2);
                DbParameter parameter3 = command.CreateParameter();
                parameter3.DbType        = System.Data.DbType.String;
                parameter3.ParameterName = "@d";
                parameter3.Value         = d;
                command.Parameters.Add(parameter3);
                command.CommandText = "my_proc2";
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.Connection.Open();
                DbDataReader reader = await command.ExecuteReaderAsync();

                if (reader.HasRows)
                {
                    while (await reader.ReadAsync())
                    {
                        object[] item = new object[reader.FieldCount];
                        reader.GetValues(item);
                        source.Add(item);
                    }
                }
                command.Connection.Close();
            }

            var count = source.Count;
            var items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList();

            PageViewModel      pageViewModel = new PageViewModel(count, page, pageSize);
            ProcedureViewModel viewModel     = new ProcedureViewModel
            {
                FilterViewModel = new FilterViewModel(source, buildingName, d0, d, db.Buildings.ToList()),
                PageViewModel   = pageViewModel,
                Objects         = items,
            };

            return(View(viewModel));
        }
        //新增
        public void CreateData(ProcedureViewModel model)
        {
            //model 不得為 null
            if (model == null)
            {
                throw new Exception("請檢查輸入的資料!");
            }

            //判斷有無此簽核代碼
            if (IsExistSignID(model.SignID))
            {
                throw new Exception("新增失敗,已經存在相同簽核層級代碼!");
            }

            var mainpulationConditions = new Conditions()
            {
                { "@SignID", model.SignID },
                { "@SignLevel", model.SignLevel },
                { "@MaxLevel", model.MaxLevel },
                { "@Disabled", model.Disabled },
                { "@DisabledDate", model.DisabledDate },
                { "@Creator", model.Creator },
                { "@CreateDate", model.CreateDate },
            };

            try
            {
                _dc.ExecuteAndCheck(
                    @"INSERT INTO signprocedure 
			(signid, 
			 signlevel, 
			 maxlevel, 
			 disabled, 
			 disableddate, 
			 creator, 
			 createdate) 
VALUES      (@SignID, 
			 @SignLevel, 
			 @MaxLevel, 
			 @Disabled, 
			 CASE 
			   WHEN @DisabledDate = '' THEN NULL 
			   ELSE @DisabledDate 
			 END, 
			 @Creator, 
			 @CreateDate) "            , mainpulationConditions);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #18
0
        public ActionResult Edit(ProcedureViewModel procedure)
        {
            if (ModelState.IsValid)
            {
                var model = db.Procedures.Find(procedure.ID);
                GlobalHelpers.Transfer <ProcedureViewModel, Procedure>(procedure, model);
                db.Entry(model).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(procedure));
        }
コード例 #19
0
        protected void SaveBtn_Click(object sender, EventArgs e)
        {
            _procedureRepo = RepositoryFactory.CreateProcedureRepo();
            //取得頁面資料
            model = WebUtils.ViewModelMapping <ProcedureViewModel>(this.Page);

            var validator   = new Validator();
            var validResult = validator.ValidateModel(model);

            if (!validResult.IsValid)
            {
                Response.Write(validResult.ErrorMessage.ToString().ToAlertFormat());
                return;
            }

            //btn處理
            ViewUtils.ButtonOff(SaveBtn, CoverBtn);

            //存檔
            var responseMessage = "";
            var successRdUrl    = String.Empty;

            try
            {
                if (String.IsNullOrWhiteSpace(Request["SignID"]))
                {
                    _procedureRepo.CreateData(model);
                    successRdUrl    = @"ProcedureDataList.aspx?orderField=CreateDate&descending=True";
                    responseMessage = "新增成功!";
                }
                else
                {
                    _procedureRepo.EditData(model);
                    successRdUrl    = @"ProcedureDataList.aspx?orderField=ModifyDate&descending=True";
                    responseMessage = "編輯成功!";
                }

                //btn處理
                ViewUtils.ButtonOn(SaveBtn, CoverBtn);
                responseMessage = responseMessage.ToAlertAndRedirect(successRdUrl);
            }
            catch (Exception ex)
            {
                responseMessage = String.Concat("存檔失敗!\r\n錯誤訊息: ", ex.Message).ToAlertFormat();
                ViewUtils.ShowRefreshBtn(CoverBtn, RefreshBtn);
            }
            finally
            {
                Response.Write(responseMessage);
            }
        }
コード例 #20
0
        public ActionResult Edit(int id, [FromForm] ProcedureViewModel model)
        {
            try
            {
                model.ProcedureId = id;
                _procedureRepository.Update(_mapper.Map <Procedure>(model));

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(RedirectToAction(nameof(Index)));
            }
        }
コード例 #21
0
        public ActionResult Edit(int id = 0)
        {
            Procedure procedure = db.Procedures.Find(id);

            if (procedure == null)
            {
                return(this.InvokeHttp404(HttpContext));
            }
            ProcedureViewModel model = new ProcedureViewModel();

            GlobalHelpers.Transfer <Procedure, ProcedureViewModel>(procedure, model);

            return(View(model));
        }
コード例 #22
0
        public async Task <ActionResult> Create(ProcedureViewModel procedureViewModel)
        {
            if (ModelState.IsValid)
            {
                await _procedureService.Add(procedureViewModel.MapToDto());

                return(RedirectToAction("Index"));
            }

            var procedureCategories = _procedureCategoryService.GetItems();

            ViewBag.ProcedureCategoryId = new SelectList(procedureCategories, "Id", "Name", procedureViewModel.ProcedureCategoryId);

            return(View(procedureViewModel));
        }
コード例 #23
0
 private void buttonUpd_Click(object sender, RoutedEventArgs e)
 {
     if (dataGridProcedures.SelectedCells.Count != 0)
     {
         var window   = Container.Resolve <WindowProcedure>();
         var cellInfo = dataGridProcedures.SelectedCells[0];
         ProcedureViewModel content = (ProcedureViewModel)(cellInfo.Item);
         window.Id       = Convert.ToInt32(content.Id);
         window.ClientId = (int)id;
         if (window.ShowDialog().Value)
         {
             LoadData();
         }
     }
 }
コード例 #24
0
        public IActionResult AddProcedure(ProcedureViewModel model)
        {
            if (ModelState.IsValid)
            {
                var newProcedure = new Procedure();
                newProcedure.Name        = model.Name;
                newProcedure.Description = model.Description;

                _data.Add(newProcedure);

                return(RedirectToAction(nameof(All)));
            }

            return(View(model));
        }
コード例 #25
0
        public static ProcedureDto MapToDto(this ProcedureViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(null);
            }

            return(new ProcedureDto
            {
                Id = viewModel.Id,
                Name = viewModel.Name,
                Price = viewModel.Price,
                ProcedureCategoryId = viewModel.ProcedureCategoryId
            });
        }
コード例 #26
0
        public ActionResult Create(ProcedureViewModel model)
        {
            try
            {
                model.Medicines = model.MedicineIds.Select(x => new MedicineViewModel {
                    MedicineId = x
                });
                _procedureRepository.Add(_mapper.Map <Procedure>(model));

                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(RedirectToAction(nameof(Index)));
            }
        }
        //編輯
        public void EditData(ProcedureViewModel model)
        {
            var orgModel = GetProcedureData(model.SignID);

            //model 不得為 null
            if (model == null || orgModel == null)
            {
                throw new Exception("請檢查輸入的資料!");
            }

            if (!model.TimeStamp.Equals(orgModel.ModifyDate.FormatDatetimeNullable()))
            {
                throw new Exception("此筆資料已被他人更新!請重新確認!");
            }

            var mainpulationConditions = new Conditions()
            {
                { "@SignID", model.SignID },
                { "@SignLevel", model.SignLevel },
                { "@MaxLevel", model.MaxLevel },
                { "@Disabled", model.Disabled },
                { "@DisabledDate", model.DisabledDate },
                { "@Modifier", model.Modifier }
            };

            try
            {
                _dc.ExecuteAndCheck(
                    @"Update SignProcedure Set 
		 SignID = @SignID,
		 SignLevel = @SignLevel, 
		 MaxLevel = @MaxLevel, 
		 Disabled = @Disabled, 
		 DisabledDate = Case When @DisabledDate = '' then null else @DisabledDate end, 
		 Modifier = @Modifier,
		 ModifyDate = getDate()
 Where SignID = @SignID", mainpulationConditions);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #28
0
        public IActionResult Edit(ProcedureViewModel model, int id)
        {
            if (ModelState.IsValid)
            {
                var procedure = _data.GetById(id);
                if (procedure == null)
                {
                    return(RedirectToAction(nameof(ProcedureNotFound)));
                }

                procedure.Name        = model.Name;
                procedure.Description = model.Description;
                _data.Save();

                return(View(nameof(Procedure), procedure));
            }

            return(View(model));
        }
コード例 #29
0
        public ActionResult Create(ProcedureViewModel procedureVM)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.proceduretypelist = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "Procedure Type" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue");

                ViewBag.procedurepurpose   = procedureVM.ProcedurePurpose;
                ViewBag.MultiPARTProjectID = procedureVM.MultiPARTProjectID;

                return(View(procedureVM));
            }

            if (procedureVM == null)
            {
                return(new HttpStatusCodeResult(422));
            }

            if (!_projectuservalidationservice.UserCanEditProject(procedureVM.ProcedureID))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }


            Procedure procedure = new Procedure()
            {
                MultiPARTProjectMultiPARTProjectID = procedureVM.MultiPARTProjectID,
                ProcedureLabel     = procedureVM.ProcedureLabel,
                ProcedureTypeID    = procedureVM.ProcedureTypeID,
                ProcedurePurposeID = db.Options.Where(p => p.Status == "Current" && p.OptionFields.OptionFieldName == "Procedure Purpose" && p.OptionValue == procedureVM.ProcedurePurpose).Select(p => p.OptionID).FirstOrDefault(),
                Details            = procedureVM.Details,

                CreatedBy     = (int)Membership.GetUser().ProviderUserKey,
                CreatedOn     = DateTimeOffset.Now,
                LastUpdatedBy = (int)Membership.GetUser().ProviderUserKey
            };

            db.Procedures.Add(procedure);
            db.SaveChanges();
            return(RedirectToAction("Details", "MultiPARTProject", new { projectid = procedureVM.MultiPARTProjectID }));
        }
コード例 #30
0
        //
        // GET: /Procedure/Create

        public ActionResult Create(int projectid = 0, string procedurepurpose = "")
        {
            if (!_projectuservalidationservice.UserCanEditProject(projectid))
            {
                ViewBag.ErrorMessage = "Access Denied. Please contact administrator for further assistance.";
                return(View("Error"));
            }

            ViewBag.proceduretypelist = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "Procedure Type" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue");

            ViewBag.procedurepurpose   = procedurepurpose;
            ViewBag.MultiPARTProjectID = projectid;

            ProcedureViewModel procedureVM = new ProcedureViewModel()
            {
                MultiPARTProjectID = projectid,
                ProcedurePurposeID = db.Options.Where(p => p.Status == "Current" && p.OptionFields.OptionFieldName == "procedurepurpose").Select(p => p.OptionID).FirstOrDefault(),
                ProcedurePurpose   = procedurepurpose,
            };

            return(View(procedureVM));
        }