Exemplo n.º 1
0
 public async Task <MapDto> CreateMapAsync([FromBody] CreateMapInput input)
 {
     return(await _mapAppService.CreateMapAsync(input));
 }
Exemplo n.º 2
0
        public void CreateNidecMap()
        {
            try
            {
                if (Rows <= 0 || Colums <= 0)
                {
                    return;
                }

                //从MapDefinition中拿到bioptro的一个定义好的Definition,目的是为了利用已经创建好的filters
                GetObjectByNameOutput        nidecMapDefinitionOutput     = null;
                GetObjectByNameInput         nidecMapDefinitionInput      = null;
                MapDefinition                nidecMapDefinition           = null;
                GetMapDefinitionLayersOutput getMapDefinitionLayersOutput = null;

                try
                {
                    nidecMapDefinitionInput = new GetObjectByNameInput()
                    {
                        Name         = string.Format("nidec{0}x{1}", Rows, Colums),//MapDefinition的命名格式为string.Format("bioptro{0}x{1}",行,列)
                        Type         = new MapDefinition(),
                        LevelsToLoad = 3
                    };

                    nidecMapDefinitionOutput = nidecMapDefinitionInput.GetObjectByNameSync();

                    if (nidecMapDefinitionOutput != null)
                    {
                        nidecMapDefinition = nidecMapDefinitionOutput.Instance as MapDefinition;
                    }
                }
                catch (Exception ex)
                {
                    //log.Error(ex);
                }

                //判断当前获取的模板是否与需要的一致,不一致则先去拿默认的然后新建。新建MapDefinition的命名格式为string.Format("bioptro{0}x{1}",行,列)

                try
                {
                    if (nidecMapDefinition == null)
                    {
                        nidecMapDefinitionOutput = null;
                        nidecMapDefinitionInput  = new GetObjectByNameInput()
                        {
                            Name         = "nidec",//MapDefinition的命名格式为string.Format("bioptro{0}x{1}",行,列)
                            Type         = new MapDefinition(),
                            LevelsToLoad = 3
                        };
                        nidecMapDefinitionOutput = nidecMapDefinitionInput.GetObjectByNameSync();
                        if (nidecMapDefinitionOutput != null)
                        {
                            nidecMapDefinition = nidecMapDefinitionOutput.Instance as MapDefinition;
                        }

                        GetMapDefinitionLayersInput getMapDefinitionLayersInput = new GetMapDefinitionLayersInput()
                        {
                            MapDefinitions = new MapDefinitionCollection()
                            {
                                nidecMapDefinition
                            }
                        };
                        getMapDefinitionLayersOutput = getMapDefinitionLayersInput.GetMapDefinitionLayersSync();
                    }
                }
                catch (Exception ex)
                {
                    //log.Error(ex);
                }



                MapDefinition             newBioptroMapDefinition   = null;
                CreateMapDefinitionOutput createMapDefinitionOutput = null;
                try
                {
                    if (nidecMapDefinition != null && getMapDefinitionLayersOutput != null)
                    {
                        newBioptroMapDefinition = new MapDefinition()
                        {
                            Name                     = string.Format("nidec{0}x{1}", Rows, Colums),
                            Rows                     = Rows,
                            Columns                  = Colums,
                            MapDefinitionLayers      = getMapDefinitionLayersOutput?.MapDefinitions?[0].MapDefinitionLayers,
                            DefaultLayer             = getMapDefinitionLayersOutput?.MapDefinitions?[0].MapDefinitionLayers[0].Name,
                            WidthToHeightAspectRatio = 1,
                            ShowGridlinesByDefault   = true,
                            Notch                    = Notch.Left,
                            DefaultRotation          = DefaultRotation.Rotate0,
                            ShowRulerByDefault       = true,
                            Type                     = nidecMapDefinition.Type,
                            MaterialUnits            = nidecMapDefinition.MaterialUnits,
                            GridlinesColor           = nidecMapDefinition.GridlinesColor,
                            EmptyUnitsColor          = nidecMapDefinition.EmptyUnitsColor,
                        };

                        //创建MapDefinition
                        CreateMapDefinitionInput createMapDefinitionInput = new CreateMapDefinitionInput();
                        createMapDefinitionInput.MapDefinition = newBioptroMapDefinition;
                        //createMapDefinitionInput.IsNewDefinition = true;
                        createMapDefinitionOutput = createMapDefinitionInput.CreateMapDefinitionSync();
                        nidecMapDefinition        = createMapDefinitionOutput.MapDefinition;
                    }
                }
                catch (Exception ex)
                {
                    //log.Error(ex);
                }

                //创建Map
                CreateMapOutput NidecMapOutput = null;
                try
                {
                    if (nidecMapDefinition != null)
                    {
                        Map nidecMap = new Map()
                        {
                            Name          = this.MapName,
                            MapDefinition = nidecMapDefinition,
                        };

                        CreateMapInput nidecMapInput = new CreateMapInput()
                        {
                            Map = nidecMap
                        };
                        NidecMapOutput = nidecMapInput.CreateMapSync();
                    }
                }
                catch (Exception ex)
                {
                    //log.Error(ex);
                }


                ChangeMapUnitsForBinInput mappingManagement = new ChangeMapUnitsForBinInput();
                try
                {
                    if (NidecMapOutput != null)
                    {
                        foreach (var layer in NidecMapOutput.Map.MapLayers)
                        {
                            mappingManagement.MapLayer = layer;
                            Dictionary <UnitsInput, string> UnitsValues = new Dictionary <UnitsInput, string>();
                            for (int row = 0; row < Rows; row++)
                            {
                                for (int col = 0; col < Colums; col++)
                                {
                                    UnitsValues.Add(new UnitsInput()
                                    {
                                        Row = row, Column = col
                                    }, mapArr[row, col].ToUpper());
                                }
                            }
                            mappingManagement.UnitsValues = UnitsValues;

                            ChangeMapUnitsForBinOuput changeMapUnitsForBinOuput = mappingManagement.ChangeMapUnitsForBinSync();
                        }
                    }
                }
                catch (Exception ex)
                {
                    //log.Error(ex);
                }
            }
            catch (Exception ex)
            {
                //log.Error(ex);
            }
        }