コード例 #1
0
        public async Task <FlowViewModel> Get(string language, string tag, string geography, int year)
        {
            if (false == "fr".Equals(language))
            {
                language = "en";
            }

            if (true == string.IsNullOrEmpty(geography))
            {
                geography = "ca";
            }
            else
            {
                geography = geography.ToLower();
            }

            if (true == string.IsNullOrEmpty(tag))
            {
                tag = "root";
            }
            else
            {
                tag = tag.ToLower();
            }

            var location = await _context.Geos.Where(p => p.Iso3166 == geography).SingleOrDefaultAsync();

            var table = await _context.Tables.Where(p => p.Tag == tag).SingleOrDefaultAsync();

            var flows = await _context.Flows.Include(p => p.Source).Include(p => p.Target).Where(p => p.Geo.Iso3166 == geography && p.Year == year && p.Table.Tag == tag).ToArrayAsync();

            var model = new FlowViewModel
            {
                Geography = location?.Name(language),
                Name      = table?.Name(language),
                Note      = table?.NoteEn,
                Tag       = tag,
                Year      = year,
                Data      = flows.Select(p => new object[3] {
                    p.Source.Name(language), p.Target.Name(language), p.Value
                })
            };

//{
//    "nodes":[
//        {"name":"Agricultural 'waste'"},
//        {"name":"Bio-conversion"},
//        {"name":"Liquid"},
//        {"name":"Losses"},{"name":"Solid"},{"name":"Gas"},{"name":"Biofuel imports"},{"name":"Biomass imports"},{"name":"Coal imports"},{"name":"Coal"},{"name":"Coal reserves"},{"name":"District heating"},{"name":"Industry"},{"name":"Heating and cooling - commercial"},{"name":"Heating and cooling - homes"},{"name":"Electricity grid"},{"name":"Over generation / exports"},{"name":"H2 conversion"},{"name":"Road transport"},{"name":"Agriculture"},{"name":"Rail transport"},{"name":"Lighting & appliances - commercial"},{"name":"Lighting & appliances - homes"},{"name":"Gas imports"},{"name":"Ngas"},{"name":"Gas reserves"},{"name":"Thermal generation"},{"name":"Geothermal"},{"name":"H2"},{"name":"Hydro"},{"name":"International shipping"},{"name":"Domestic aviation"},{"name":"International aviation"},{"name":"National navigation"},{"name":"Marine algae"},{"name":"Nuclear"},{"name":"Oil imports"},{"name":"Oil"},{"name":"Oil reserves"},{"name":"Other waste"},{"name":"Pumped heat"},{"name":"Solar PV"},{"name":"Solar Thermal"},{"name":"Solar"},{"name":"Tidal"},{"name":"UK land based bioenergy"},{"name":"Wave"},{"name":"Wind"}
//    ],
//    "links":[
//        {"source":0,"target":1,"value":124.729},
//        {"source":1,"target":2,"value":0.597},
//        {"source":1,"target":3,"value":26.862},{"source":1,"target":4,"value":280.322},{"source":1,"target":5,"value":81.144},{"source":6,"target":2,"value":35},{"source":7,"target":4,"value":35},{"source":8,"target":9,"value":11.606},{"source":10,"target":9,"value":63.965},{"source":9,"target":4,"value":75.571},{"source":11,"target":12,"value":10.639},{"source":11,"target":13,"value":22.505},{"source":11,"target":14,"value":46.184},{"source":15,"target":16,"value":104.453},{"source":15,"target":14,"value":113.726},{"source":15,"target":17,"value":27.14},{"source":15,"target":12,"value":342.165},{"source":15,"target":18,"value":37.797},{"source":15,"target":19,"value":4.412},{"source":15,"target":13,"value":40.858},{"source":15,"target":3,"value":56.691},{"source":15,"target":20,"value":7.863},{"source":15,"target":21,"value":90.008},{"source":15,"target":22,"value":93.494},{"source":23,"target":24,"value":40.719},{"source":25,"target":24,"value":82.233},{"source":5,"target":13,"value":0.129},{"source":5,"target":3,"value":1.401},{"source":5,"target":26,"value":151.891},{"source":5,"target":19,"value":2.096},{"source":5,"target":12,"value":48.58},{"source":27,"target":15,"value":7.013},{"source":17,"target":28,"value":20.897},{"source":17,"target":3,"value":6.242},{"source":28,"target":18,"value":20.897},{"source":29,"target":15,"value":6.995},{"source":2,"target":12,"value":121.066},{"source":2,"target":30,"value":128.69},{"source":2,"target":18,"value":135.835},{"source":2,"target":31,"value":14.458},{"source":2,"target":32,"value":206.267},{"source":2,"target":19,"value":3.64},{"source":2,"target":33,"value":33.218},{"source":2,"target":20,"value":4.413},{"source":34,"target":1,"value":4.375},{"source":24,"target":5,"value":122.952},{"source":35,"target":26,"value":839.978},{"source":36,"target":37,"value":504.287},{"source":38,"target":37,"value":107.703},{"source":37,"target":2,"value":611.99},{"source":39,"target":4,"value":56.587},{"source":39,"target":1,"value":77.81},{"source":40,"target":14,"value":193.026},{"source":40,"target":13,"value":70.672},{"source":41,"target":15,"value":59.901},{"source":42,"target":14,"value":19.263},{"source":43,"target":42,"value":19.263},{"source":43,"target":41,"value":59.901},{"source":4,"target":19,"value":0.882},{"source":4,"target":26,"value":400.12},{"source":4,"target":12,"value":46.477},{"source":26,"target":15,"value":525.531},{"source":26,"target":3,"value":787.129},{"source":26,"target":11,"value":79.329},{"source":44,"target":15,"value":9.452},{"source":45,"target":1,"value":182.01},{"source":46,"target":15,"value":19.013},{"source":47,"target":15,"value":289.366}
//    ]
//}


            return(model);
        }
コード例 #2
0
        public ActionResult CheckForNextStep(string processId, int id)
        {
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.DataModel   = unit.Flows.GetById(id);
            viewModel.CommandList = service.WorkflowCommands(Guid.Parse(processId), null);
            return(View(viewModel));
        }
コード例 #3
0
        public ActionResult Index()
        {
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.DataModels = unit.Flows.GetAll().Include(f => f.SampleForm).ToList();
            //var flows = db.Flows.Include(f => f.SampleForm);
            return(View(viewModel));
        }
コード例 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.DataModel = unit.Flows.GetById(id);
            unit.Flows.Delete(viewModel.DataModel);
            unit.Flows.Save();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        // GET: Flows/Create
        public ActionResult Create()
        {
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.SampleForms    = unit.Form.GetAll().ToList();
            viewModel.SchemeCodeList = service.GetSchemes();
            //ViewBag.SampleFormId = new SelectList(db.SampleForms, "Id", "Message");
            return(View(viewModel));
        }
コード例 #6
0
        public FlowPage(FlowViewModel viewModel)
        {
            InitializeComponent();
            BindingContext = this.viewModel = viewModel;

            viewModel.StepCollection.CollectionChanged += StepCollectionOnCollectionChanged;

            viewModel.StepCollection.ForEach(step => FlowViews.Add(FlowStepToView(step)));
        }
コード例 #7
0
        /// <summary>
        /// SQL获取节点信息
        /// </summary>
        /// <param name="sysname"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <List <long> > GetFlowNodeInfo(string sysname, FlowViewModel model)
        {
            string url      = string.Format(_appSettings.Value.MsApplication.url + _appSettings.Value.WorkFlow.GetFlowNodeInfo, sysname);
            var    content  = new StringContent(model.ToJson(), System.Text.Encoding.UTF8, "application/json");
            var    response = await _apiClient.PostAsync(url, content);

            response.EnsureSuccessStatusCode();
            string res = await response.Content.ReadAsStringAsync();

            return(res.ToObject <List <long> >());
        }
コード例 #8
0
 public ActionResult Edit(FlowViewModel flows)
 {
     if (ModelState.IsValid)
     {
         unit.Flows.Update(flows.DataModel);
         unit.Flows.Save();
         return(RedirectToAction("Index"));
     }
     flows.SampleForms = unit.Form.GetAll().ToList();
     // ViewBag.SampleFormId = new SelectList(db.SampleForms, "Id", "Message", flows.SampleFormId);
     return(View(flows));
 }
コード例 #9
0
        public FlowGroupViewModel(string name, IEnumerable<Type> flowTypes, FlowListViewModel flowListViewModel)
        {
            Name = name;
            Flows = new ObservableCollection<FlowViewModel>();

            var allowedParameterTypes = new[]
            {
                typeof(int),
                typeof(int?),
                typeof(decimal),
                typeof(decimal?),
                typeof(short),
                typeof(short?),
                typeof(long),
                typeof(long?),
                typeof(float),
                typeof(float?),
                typeof(bool),
                typeof(bool?),
                typeof(string),
                typeof(char),
                typeof(char?),
                typeof(DateTime),
                typeof(DateTime?)
            };

            var options = new AutomationFlowRunnerOptions()
            {
                ResultListener = flowListViewModel
            };

            var orderedFlowTypes = flowTypes
                .OrderBy(x => x.GetCustomAttribute<UIExecutableAttribute>().OptionalDependencyGroupOrder ?? -1)
                .ThenBy(FlowViewModel.GetDisplayName);

            foreach (var flowType in orderedFlowTypes)
            {
                var constructors = flowType.GetConstructors().OrderByDescending(x => x.GetParameters().Length);

                foreach (var constructorInfo in constructors)
                {
                    var parameters = constructorInfo.GetParameters();

                    if (parameters.All(x => allowedParameterTypes.Contains(x.ParameterType)))
                    {
                        var parameterViewModels = parameters.Select(x => new FlowParameterViewModel(x));
                        var flowViewModel = new FlowViewModel(flowType, constructorInfo, parameterViewModels, options);

                        Flows.Add(flowViewModel);
                    }
                }
            }
        }
コード例 #10
0
 public ActionResult Create(FlowViewModel flows)
 {
     if (ModelState.IsValid)
     {
         flows.DataModel.WorkflowInstanceId = service.StartFlow(flows.DataModel.WorkflowSchemeName);
         unit.Flows.Insert(flows.DataModel);
         unit.Flows.Save();
         return(RedirectToAction("Index"));
     }
     flows.SampleForms = unit.Form.GetAll().ToList();
     //ViewBag.SampleFormId = new SelectList(db.SampleForms, "Id", "Message", flows.SampleFormId);
     return(View(flows));
 }
コード例 #11
0
        public async Task <IActionResult> EditFlow(int id)
        {
            var flow = await _taskTemplateAppService.Get(new EntityDto <int> {
                Id = id
            });

            var vmModel = new FlowViewModel
            {
                Flow = flow
            };

            return(View("EditFlow", vmModel));
        }
コード例 #12
0
        // GET: Flows/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.DataModel = unit.Flows.GetById(id);
            if (viewModel.DataModel == null)
            {
                return(HttpNotFound());
            }
            return(View(viewModel));
        }
コード例 #13
0
        public void BeforeEach()
        {
            _progressService      = new ProgressServiceMoqaLate();
            _flowStreamConnection = new FlowStreamingConnectionMoqaLate();

            _flowViewModel = new FlowViewModel(
                new AppSettingsMoqaLate(),
                _mockFlowdockContext,
                _progressService,
                new NavigationManagerMoqaLate(),
                _flowStreamConnection,
                new MessageServiceMoqaLate()
                );

            _flowViewModel.FlowId = "some:flow";
        }
コード例 #14
0
        /// <summary>
        /// 工作流查询数据
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public async Task <List <long> > GetFlowNodeInfo(FlowViewModel model)
        {
            try
            {
                var dbflow = await databaseFixture.Db.OaWorkflowsql.FindByIdAsync(model.sql);

                string            mysql        = dbflow.FlowSQL;
                var               dbparamnames = dbflow.Param.Split(',');
                DynamicParameters dbArgs       = new DynamicParameters();
                foreach (string item in dbparamnames)
                {
                    if (item.ToLower().Equals("userid", StringComparison.OrdinalIgnoreCase))
                    {
                        dbArgs.Add(item, model.UserId);
                    }
                    else
                    {
                        foreach (var key in model.param.Keys)
                        {
                            if (key.ToLower() == item.ToLower())
                            {
                                dbArgs.Add(item, model.param[key]);
                                break;
                            }
                        }
                    }
                }
                var res = await databaseFixture.Db.Connection.QueryAsync <string>(mysql, dbArgs);

                var list = res.Where(m => !string.IsNullOrEmpty(m)).ToList();
                if (list.Any())
                {
                    string   userids = res.ToList()[0];
                    string[] array   = userids.Split(',');
                    return(array.Select(x => Convert.ToInt64(x)).ToList());
                }
                else
                {
                    throw new Exception("人员查询未找到!!!");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #15
0
        // GET: Flows/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FlowViewModel viewModel = new FlowViewModel();

            viewModel.DataModel   = unit.Flows.GetById(id);
            viewModel.SampleForms = unit.Form.GetAll().ToList();
            //Flows flows = db.Flows.Find(id);
            if (viewModel.DataModel == null)
            {
                return(HttpNotFound());
            }

            // ViewBag.SampleFormId = new SelectList(db.SampleForms, "Id", "Message", flows.SampleFormId);
            return(View(viewModel));
        }
コード例 #16
0
        public ActionResult CheckForNextStep(FlowViewModel flows)
        {
            var p = workflowModel.Runtime.EnableCodeActions();
            var d = workflowModel.Runtime.WithActionProvider(new ActionProvider());

            var ss = workflowModel.Runtime.GetProcessInstanceAndFillProcessParameters(flows.DataModel.WorkflowInstanceId);
            var vv = ss.CurrentActivity.Implementation;

            foreach (var item in vv)
            {
                workflowModel.Runtime.ActionProvider.ExecuteAction(item.ActionName, ss, workflowModel.Runtime, null);
            }

            var commands = service.WorkflowCommands(flows.DataModel.WorkflowInstanceId, null);
            var command  = commands.FirstOrDefault(c => c.CommandName == flows.DataModel.CurrentStateId);

            workflowModel.Runtime.ExecuteCommand(flows.DataModel.WorkflowInstanceId, null, null, command);
            flows.DataModel.CurrentStateId = workflowModel.Runtime.GetCurrentState(flows.DataModel.WorkflowInstanceId, null).Name;

            unit.Flows.Update(flows.DataModel);
            unit.Flows.Save();
            return(RedirectToAction("Index"));
        }
コード例 #17
0
 public async Task <List <long> > GetFlowNodeInfo([FromBody] FlowViewModel model)
 {
     return(await flowService.GetFlowNodeInfo(model));
 }