public ActionResult Descargar(string tipo, string reportId, string primarykey)
        {
            var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));

            var    tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo);
            Guid   usuario       = ContextService.Id;
            string name          = reportId;


            ViewBag.Tipo    = (int)tipoDocumento;
            ViewBag.Usuario = usuario.ToString();


            var model = new DesignModel
            {
                Url        = reportId,
                Report     = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos,
                DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource,
                Name       = name
            };

            var report = new XtraReport();

            using (var ms = new MemoryStream(model.Report))
            {
                report.LoadLayout(ms);
                report.DataSource = model.DataSource;
                report.Name       = model.Name;
                using (var stream = new MemoryStream())
                {
                    report.ExportToPdf(stream);
                    return(File(stream.GetBuffer(), "application/pdf"));
                }
            }
        }
        public ActionResult Visualizar(string tipo, string reportId, string primarykey)
        {
            var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos));

            TipoDocumentoImpresion tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo);
            Guid   usuario = ContextService.Id;
            string name    = reportId;

            Dictionary <string, object> dictionary = null;

            if (primarykey.IsValidJson())
            {
                dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey);
            }

            ViewBag.Tipo    = (int)tipoDocumento;
            ViewBag.Usuario = usuario.ToString();
            var model = new DesignModel
            {
                Url        = reportId,
                Report     = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos,
                DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource,
                Parameters = dictionary,
                Name       = name
            };

            Session["ReportViewer"] = model;
            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult EditDesign(DesignModel model)
        {
            try
            {
                string image = model.Url;

                for (int i = 0; i < Request.Files.Count; i++)
                {
                    HttpPostedFileBase file = Request.Files[i];
                    if (file.ContentLength > 0)
                    {
                        string fileName = Guid.NewGuid() + "." + file.FileName.Split('.')[1];
                        string path     = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "screenshots\\", fileName);
                        file.SaveAs(path);
                        image = "/screenshots/" + fileName;
                    }
                }
                if (model.Id > 0)
                {
                    var obj = _db.Designs.Where(x => x.Id == model.Id && x.IsDeleted == false).FirstOrDefault();
                    obj.Html             = model.Html;
                    obj.CategoryId       = model.Fk_Category;
                    obj.ImageUrl         = image;
                    obj.UpdatedOn        = DateTime.UtcNow;
                    _db.Entry(obj).State = System.Data.Entity.EntityState.Modified;
                    _db.SaveChanges();
                }
                else
                {
                    var obj = new Design()
                    {
                        CategoryId = model.Fk_Category,
                        Html       = model.Html,
                        ImageUrl   = image,
                        CreatedOn  = DateTime.UtcNow,
                        IsDeleted  = false
                    };
                    _db.Entry(obj).State = System.Data.Entity.EntityState.Added;
                    _db.SaveChanges();
                }
                return(RedirectToAction("Design"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 4
0
        private byte[] UrlFile(FicherosEmailModel item)
        {
            var mierror = "";
            var result  = new  byte[0];

            try
            {
                using (var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)))
                {
                    var vector                 = item.Url.Split(';');
                    var primarykey             = vector[0];
                    var TipoDocumentoImpresion = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), vector[1]);
                    var reportId               = vector[2];
                    var model = new DesignModel
                    {
                        Url        = reportId,
                        Report     = service.GetDocumento(TipoDocumentoImpresion, ContextService.Id, reportId)?.Datos,
                        DataSource = FDocumentosDatasourceReport.CreateReport(TipoDocumentoImpresion, ContextService, primarykey).DataSource,
                        Name       = string.Format("{0}", item.Nombre)
                    };

                    var report = new XtraReport();
                    using (var ms = new MemoryStream(model.Report))
                    {
                        report.LoadLayout(ms);
                        report.DataSource = model.DataSource;
                        report.Name       = model.Name;
                        using (var stream = new MemoryStream())
                        {
                            report.ExportToPdf(stream);
                            result = stream.GetBuffer();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                mierror = ex.Message;
            }

            return(result);
        }
Ejemplo n.º 5
0
 public ActionResult EditDesign(long?Id)
 {
     try
     {
         DesignModel model;
         if (Id != null)
         {
             model = _db.Designs.Where(x => x.Id == Id && x.IsDeleted == false).Select(x => new DesignModel()
             {
                 Id          = x.Id,
                 Fk_Category = x.CategoryId,
                 Html        = x.Html,
                 Url         = x.ImageUrl
             }).FirstOrDefault();
             model.Categories = _db.Categories.Where(x => x.IsDeleted == false).Select(x => new CategoryModel()
             {
                 Id   = x.Id,
                 Name = x.Name
             }).ToList();
         }
         else
         {
             model            = new DesignModel();
             model.Categories = _db.Categories.Where(x => x.IsDeleted == false).Select(x => new CategoryModel()
             {
                 Id   = x.Id,
                 Name = x.Name
             }).ToList();
         }
         return(View(model));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 6
0
        public DesignsViewActor(DesignViewModel designViewModel, ModMetadata modMetadata)
        {
            // TODO : move to coordinator
            //IActorRef stringTableActorRef = Context.ActorOf(Props.Create(() => new ModStringTableActor(modMetadata)));
            //IActorRef designOperationsActorRef = Context.ActorOf(Props.Create(() => new DesignOperationsActor(modMetadata)));

            int processorCount = Environment.ProcessorCount;

            Receive <LoadDesignsCommand>(command => { designOperationsActorRef.Tell(command); });

            Receive <CloseDesignsViewCommand>(@event =>
            {
                Self.Tell(PoisonPill.Instance);

                var viewClosedEvent = new DesignViewClosedEvent(@event.DesignViewModel);

                Context.System.EventStream.Publish(viewClosedEvent);
            });

            Receive <DesignsLoadedEvent>(async @event =>
            {
                using (var mat = Context.Materializer())
                {
                    IList <StringTableValueLoadedEvent> events = new List <StringTableValueLoadedEvent>();

                    await Source.From(@event.Designs)
                    .SelectAsync(processorCount,
                                 design => stringTableActorRef.Ask(
                                     new LoadStringTableValueFromIdCommand(design.Name ?? -1, "english")))
                    .Select(o => (StringTableValueLoadedEvent)o)
                    .RunWith(Sink.ForEach <StringTableValueLoadedEvent>(loadedEvent => events.Add(loadedEvent)), mat)
                    .PipeTo(Self, Self,
                            () =>
                    {
                        IList <DesignModel> designModels = new List <DesignModel>(@event.Designs.Count);

                        foreach (Design eventDesign in @event.Designs)
                        {
                            var stringTableValue = events.FirstOrDefault(loadedEvent =>
                                                                         loadedEvent.StId == eventDesign.Name);

                            DesignModel designModel = new DesignModel(eventDesign.Id, eventDesign.DesignId,
                                                                      eventDesign.CountryDesignerRef?.Code, eventDesign.TypeRef,
                                                                      stringTableValue?.StValue,
                                                                      eventDesign.Speed, eventDesign.Sensors, eventDesign.GunRange,
                                                                      eventDesign.GunPrecision, eventDesign.GunDamage, eventDesign.MissilePayload,
                                                                      eventDesign.MissileRange, eventDesign.MissilePrecision,
                                                                      eventDesign.MissileDamage, eventDesign.Stealth, eventDesign.Countermeasures,
                                                                      eventDesign.Armor, eventDesign.Piece1, eventDesign.Piece2, eventDesign.Piece3,
                                                                      eventDesign.Texture);

                            designModels.Add(designModel);
                        }

                        designViewModel.Designs = new ObservableCollection <DesignModel>(designModels);

                        return(designModels);
                    });
                }
            });
        }
Ejemplo n.º 7
0
 private DesignModel CreateDesignModel(int featureCount)
 {
     _designModel = _designModelBuilder.BuilDesignModel(_designModelSize, featureCount);
     return(_designModel);
 }
Ejemplo n.º 8
0
        // Only accept ComponentAssembly and DesignContainer
        public static DesignModel Convert(CyPhy.DesignEntity de)
        {
            if (!(de.Kind == "ComponentAssembly" || de.Kind == "DesignContainer"))
            {
                return(null);
            }

            ResetCache();

            var dm = new DesignModel {
                Name = de.Name
            };
            Container rootContainerType = null;


            if (de is CyPhy.ComponentAssembly)
            {
                String s_ID = (de as CyPhy.ComponentAssembly).Attributes.ConfigurationUniqueID;
                if (string.IsNullOrEmpty(s_ID))
                {
                    s_ID = Guid.NewGuid().ToString("B");
                    (de as CyPhy.ComponentAssembly).Attributes.ConfigurationUniqueID = s_ID;
                }
                if (s_ID.IndexOf("{") != 0)
                {
                    // Add curly braces
                    s_ID = string.Concat("{", s_ID, "}");
                }
                dm.DesignID = s_ID;

                rootContainerType = new Compound();
            }
            else if (de is CyPhy.DesignContainer)
            {
                dm.DesignID = (de as CyPhy.DesignContainer).Impl.GetGuidDisp();
                switch (((CyPhy.DesignContainer)de).Attributes.ContainerType)
                {
                case CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Compound:
                    rootContainerType = new Compound();
                    break;

                case CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Alternative:
                    rootContainerType = new Alternative();
                    break;

                case CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Optional:
                    rootContainerType = new Optional();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }


            // Add single ContainerType for the root level Container

            dm.Containers.AddItem(rootContainerType);
            rootContainerType.Name = de.Name;
            rootContainerType.id   = GetOrSetID(de);

            // Update DesignModel by calling recursive update method
            var innerPortInstances     = new Dictionary <CyPhy.Port, PortInstance>();
            var containerPortInstances = new Dictionary <CyPhy.Port, ContainerPort>();

            var innerStructuralPortInstances     = new Dictionary <CyPhy.Port, StructuralInterfaceInstance>();
            var containerStructuralPortInstances = new Dictionary <CyPhy.Port, ContainerStructuralInterface>();

            var connections    = new List <Connection>();
            var simpleFormulas = new Dictionary <CyPhy.SimpleFormula, ContainerCalculation>();

            // Can contain: ContainerNamedValue/ContainerCalculation/ComponentNamedValueInstance
            var valueInstances = new Dictionary <CyPhy.ValueFlowTarget, AVM.META.Design.ValueType>();


            UpdateSubContainers(new DesignPrimitivesWrapper(de), rootContainerType, dm, innerPortInstances, containerPortInstances, connections, simpleFormulas, valueInstances, innerStructuralPortInstances, containerStructuralPortInstances);


            #region Create AllPorts dictionary
            var allPorts = new Dictionary <CyPhy.Port, AbstractPort>();

            foreach (var portInstance in innerPortInstances)
            {
                allPorts.Add(portInstance.Key, portInstance.Value);
            }

            foreach (var containerPort in containerPortInstances)
            {
                allPorts.Add(containerPort.Key, containerPort.Value);
            }

            #endregion

            #region Create AllStructuralPorts dictionary
            var allStructuralPorts = new Dictionary <CyPhy.Port, AbstractStructuralInterface>();

            foreach (var abstractPortInstance in innerStructuralPortInstances)
            {
                allStructuralPorts.Add(abstractPortInstance.Key, abstractPortInstance.Value);
            }

            foreach (var abstractContainerPort in containerStructuralPortInstances)
            {
                allStructuralPorts.Add(abstractContainerPort.Key, abstractContainerPort.Value);
            }

            #endregion


            #region Join Structures -> PortConnectors

            // Pair construct
            //ConvertJoinStructures(dm, innerPortInstances, connections.OfType<CyPhy.JoinStructures>());


            // Grouping construct
            //ConvertJoinStrucutresInGroups(GetStructuralPortGroups(allPorts, connections.OfType<CyPhy.JoinStructures>()), dm, allPorts);

            // Pair construct

            #endregion

            #region ValueFlow -> ValueConnector

            ConvertValueFlows(dm, connections.OfType <CyPhy.ValueFlow>(), simpleFormulas, allPorts, valueInstances);

            #endregion

            return(dm);
        }
Ejemplo n.º 9
0
        private static void UpdateSubContainers(DesignPrimitivesWrapper de,
                                                Container rootContainerType,
                                                DesignModel rootDesignModel,
                                                Dictionary <CyPhy.Port, PortInstance> cyphyPorts2PortInstances,
                                                Dictionary <CyPhy.Port, ContainerPort> containerPorts,
                                                List <Connection> connectionsToBeVisited,
                                                Dictionary <CyPhy.SimpleFormula, ContainerCalculation> simpleFormulas,
                                                Dictionary <CyPhy.ValueFlowTarget, AVM.META.Design.ValueType> valueInstances,
                                                Dictionary <CyPhy.Port, StructuralInterfaceInstance> innerStructuralPortInstances,
                                                Dictionary <CyPhy.Port, ContainerStructuralInterface> containerStructuralPortInstances)
        {
            System.Diagnostics.Debug.WriteLine(de.Path);

            // Init list
            if (rootContainerType.ContainerPorts == null)
            {
                rootContainerType.ContainerPorts = new List <ContainerPort>();
            }
            rootContainerType.ComponentInstances = new List <ComponentInstance>();

            // Add Powerflows, JointStrucutres and ValueFlows for later steps
            connectionsToBeVisited.AddRange(de.ValueFlows);


            #region Handle ComponentRefs
            var componentRefs = de.ComponentRefs;
            foreach (var compRef in componentRefs)
            {
                var isComponent = false;
                try
                {
                    var c = compRef.Referred.Component;
                    // line above throws an exception if it is not a component
                    isComponent = true;
                }
                catch
                {
                }

                if (compRef != null && isComponent)
                {
                    CyPhy.Component comp = compRef.Referred.Component;
                    System.Diagnostics.Debug.WriteLine(comp.Path);

                    ComponentInstance compInst = Component2ComponentInstance(comp);
                    rootContainerType.ComponentInstances.AddItem(compInst);
                    compInst.Name = compRef.Name;
                    //compInst.id = GetOrSetID(compRef);
                    //compInst.id = compRef.Guid.ToString();

                    String instanceGUID = compRef.Attributes.InstanceGUID;
                    // Set this value if not set
                    if (String.IsNullOrWhiteSpace(instanceGUID))
                    {
                        compRef.Attributes.InstanceGUID = compRef.Guid.ToString();
                        instanceGUID = compRef.Attributes.InstanceGUID;
                    }
                    compInst.id = compRef.Attributes.InstanceGUID;


                    String s_SrcDesignSpaceContainerID = GetDesignSpaceSourceObjectID(compRef);
                    if (!String.IsNullOrWhiteSpace(s_SrcDesignSpaceContainerID))
                    {
                        compInst.SrcDesignSpaceContainerID = s_SrcDesignSpaceContainerID;
                    }

                    // Update Component's PortInstances
                    compInst.PortInstances = new List <PortInstance>();
                    foreach (CyPhy.Port port in comp.Children.PortCollection)
                    {
#if TRACK_PORT_ID
                        var portInst = new PortInstance {
                            IDinSourceModel = port.ID
                        };
#else
                        var portInst = new PortInstance {
                            IDinSourceModel = port.Attributes.ID
                        };
#endif
                        //var portInst = new PortInstance { IDinSourceModel = port.ID };
                        compInst.PortInstances.AddItem(portInst);

                        if (!cyphyPorts2PortInstances.ContainsKey(port))
                        {
                            cyphyPorts2PortInstances.Add(port, portInst); // Update Ports list
                        }
                    }

                    // Convert parameters
                    foreach (var p in comp.Children.ParameterCollection)
                    {
                        double result = 0;
                        double.TryParse(p.Attributes.Value, out result);
                        var componentNamedValueInstance = new ComponentNamedValueInstance {
                            IDinComponentModel = p.Attributes.ID, Value = result
                        };
                        compInst.NamedValueInstances.AddItem(componentNamedValueInstance);
                        if (valueInstances.ContainsKey(p))
                        {
                            continue;
                        }

                        valueInstances.Add(p, componentNamedValueInstance);
                    }

                    // Convert properties
                    foreach (var p in comp.Children.PropertyCollection)
                    {
                        double result = 0;
                        double.TryParse(p.Attributes.Value, out result);
                        var componentNamedValueInstance = new ComponentNamedValueInstance {
                            IDinComponentModel = p.Attributes.ID, Value = result
                        };
                        compInst.NamedValueInstances.AddItem(componentNamedValueInstance);
                        if (valueInstances.ContainsKey(p))
                        {
                            continue;
                        }

                        valueInstances.Add(p, componentNamedValueInstance);
                    }
                }
            }
            #endregion

            #region Handle Component instances
            List <CyPhy.Component> lcChildComps = de.Components;

            foreach (CyPhy.Component comp in lcChildComps)
            {
                System.Diagnostics.Debug.WriteLine(comp.Path);

                ComponentInstance compInst = Component2ComponentInstance(comp);
                rootContainerType.ComponentInstances.AddItem(compInst);

                // Update Component's PortInstances
                compInst.PortInstances = new List <PortInstance>();
                foreach (CyPhy.Port port in comp.Children.PortCollection)
                {
#if TRACK_PORT_ID
                    var structPort = new StructuralInterfaceInstance {
                        IDinSourceModel = port.ID
                    };
#else
                    var structPort = new StructuralInterfaceInstance {
                        IDinSourceModel = port.Attributes.ID
                    };
#endif
                    if (!innerStructuralPortInstances.ContainsKey(port))
                    {
                        innerStructuralPortInstances.Add(port, structPort);
                        compInst.StructuralInterfaceInstances.Add(structPort);
                    }

#if TRACK_PORT_ID
                    var portInst = new PortInstance {
                        IDinSourceModel = port.ID
                    };
#else
                    var portInst = new PortInstance {
                        IDinSourceModel = port.Attributes.ID
                    };
#endif
                    compInst.PortInstances.AddItem(portInst);

                    if (!cyphyPorts2PortInstances.ContainsKey(port))
                    {
                        cyphyPorts2PortInstances.Add(port, portInst); // Update Ports list
                    }
                }

                // Convert parameters
                foreach (var p in comp.Children.ParameterCollection)
                {
                    double result = 0;
                    double.TryParse(p.Attributes.Value, out result);
                    var componentNamedValueInstance = new ComponentNamedValueInstance {
                        IDinComponentModel = p.Attributes.ID, Value = result
                    };
                    compInst.NamedValueInstances.AddItem(componentNamedValueInstance);
                    if (valueInstances.ContainsKey(p))
                    {
                        continue;
                    }

                    valueInstances.Add(p, componentNamedValueInstance);
                }

                // Convert properties
                foreach (var p in comp.Children.PropertyCollection)
                {
                    double result = 0;
                    double.TryParse(p.Attributes.Value, out result);
                    var componentNamedValueInstance = new ComponentNamedValueInstance {
                        IDinComponentModel = p.Attributes.ID, Value = result
                    };
                    compInst.NamedValueInstances.AddItem(componentNamedValueInstance);
                    if (valueInstances.ContainsKey(p))
                    {
                        continue;
                    }

                    valueInstances.Add(p, componentNamedValueInstance);
                }
            }
            #endregion

            // Recursively add all ContainerTypes from sub-DesignEntities
            rootContainerType.Containers = new List <Container>();
            var ldeDesignEntityChildren = de.ComponentAssemblies.Cast <CyPhy.DesignEntity>().ToList();
            ldeDesignEntityChildren.AddRange(de.DesignContainers);

            foreach (CyPhy.DesignEntity subDE in ldeDesignEntityChildren)
            {
                Container subRootContainerType;
                if (subDE is CyPhy.DesignContainer &&
                    (subDE as CyPhy.DesignContainer).Attributes.ContainerType == CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Compound)
                {
                    subRootContainerType = new Compound();
                }
                else if (subDE is CyPhy.DesignContainer &&
                         (subDE as CyPhy.DesignContainer).Attributes.ContainerType == CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Alternative)
                {
                    subRootContainerType = new Alternative();
                }
                else if (subDE is CyPhy.DesignContainer &&
                         (subDE as CyPhy.DesignContainer).Attributes.ContainerType == CyPhyClasses.DesignContainer.AttributesClass.ContainerType_enum.Optional)
                {
                    subRootContainerType = new Optional();
                }
                else if (subDE is CyPhy.ComponentAssembly)
                {
                    subRootContainerType = new Compound();
                }
                else
                {
                    continue;
                }

                subRootContainerType.Name = subDE.Name;
                subRootContainerType.id   = GetOrSetID(subDE);

                rootContainerType.Containers.AddItem(subRootContainerType);

                UpdateSubContainers(new DesignPrimitivesWrapper(subDE), subRootContainerType, rootDesignModel, cyphyPorts2PortInstances, containerPorts, connectionsToBeVisited, simpleFormulas, valueInstances, innerStructuralPortInstances, containerStructuralPortInstances);
            }

            #region Elements on the current container

            // Convert simple formulas
            foreach (var sf in de.SimpleFormulas)
            {
                var containerCalculation = new ContainerCalculation();
                rootContainerType.ContainerValues.AddItem(containerCalculation);
                simpleFormulas[sf] = containerCalculation;
            }

            // Add container ports (from ports)
            foreach (var port in de.Ports)
            {
                if (containerPorts.ContainsKey(port))
                {
                    continue;
                }

                var pi = new ContainerPort();
                containerPorts.Add(port, pi);
                rootContainerType.ContainerPorts.AddItem(pi);
            }

            // Convert parameters
            foreach (var p in de.Parameters)
            {
                var containerNamedValue = new ContainerNamedValue {
                    IsParameter = true, Value = p.Attributes.Value
                };
                rootContainerType.ContainerValues.AddItem(containerNamedValue);
                if (valueInstances.ContainsKey(p))
                {
                    continue;
                }

                valueInstances.Add(p, containerNamedValue);
            }

            // Convert properties
            foreach (var p in de.Properties)
            {
                var containerNamedValue = new ContainerNamedValue {
                    IsParameter = false, Value = p.Attributes.Value
                };
                rootContainerType.ContainerValues.AddItem(containerNamedValue);
                if (valueInstances.ContainsKey(p))
                {
                    continue;
                }

                valueInstances.Add(p, containerNamedValue);
            }

            #endregion
        }
Ejemplo n.º 10
0
 //Add port group to the design model from joinstructures
 private static void ConvertJoinStrucutresInGroups(IEnumerable <HashSet <CyPhy.Port> > portGroups, DesignModel dm, Dictionary <CyPhy.Port, AbstractPort> allPorts)
 {
     foreach (var currentGroup in portGroups)
     {
         var pc = new PortConnector {
             EndPoints = new List <AbstractPort>()
         };
         foreach (var h in currentGroup.Where(allPorts.ContainsKey))
         {
             var a = allPorts[h];
             pc.EndPoints.AddItem(a);
         }
         dm.Connectors.AddItem(pc);
     }
 }
Ejemplo n.º 11
0
        // Add ComponentNamedValueInstances to the design model
        private static void ConvertValueFlows(DesignModel dm, IEnumerable <CyPhy.ValueFlow> valueFlowConnectors, Dictionary <CyPhy.SimpleFormula, ContainerCalculation> simpleFormulaCache, Dictionary <CyPhy.Port, AbstractPort> allPorts, Dictionary <CyPhy.ValueFlowTarget, AVM.META.Design.ValueType> valueInstances)
        {
            #region Param -> SimpleFormula

            foreach (var valueFlowConnector in valueFlowConnectors.Where(x => x.GenericSrcEnd.Kind == "Parameter" && x.GenericDstEnd.Kind == "SimpleFormula"))
            {
                var src = CyPhyClasses.Parameter.Cast(valueFlowConnector.GenericSrcEnd.Impl);
                var dst = CyPhyClasses.SimpleFormula.Cast(valueFlowConnector.GenericDstEnd.Impl);

                if (!valueInstances.ContainsKey(src) || !simpleFormulaCache.ContainsKey(dst))
                {
                    continue;
                }

                dm.Connectors.AddItem(new ValueConnector
                {
                    SourceValue      = valueInstances[src],
                    DestinationValue = simpleFormulaCache[dst]
                });
            }

            #endregion

            #region SimpleFormula -> Param

            foreach (var valueFlowConnector in valueFlowConnectors.Where(x => x.GenericDstEnd.Kind == "Parameter" && x.GenericSrcEnd.Kind == "SimpleFormula"))
            {
                var src = CyPhyClasses.SimpleFormula.Cast(valueFlowConnector.GenericSrcEnd.Impl);
                var dst = CyPhyClasses.Parameter.Cast(valueFlowConnector.GenericDstEnd.Impl);

                if (!valueInstances.ContainsKey(dst) || !simpleFormulaCache.ContainsKey(src))
                {
                    continue;
                }

                dm.Connectors.AddItem(new ValueConnector
                {
                    SourceValue      = simpleFormulaCache[src],
                    DestinationValue = valueInstances[dst]
                });
            }

            #endregion

            #region Property -> SimpleFormula

            foreach (var valueFlowConnector in valueFlowConnectors.Where(x => x.GenericSrcEnd.Kind == "Property" && x.GenericDstEnd.Kind == "SimpleFormula"))
            {
                var src = CyPhyClasses.Property.Cast(valueFlowConnector.GenericSrcEnd.Impl);
                var dst = CyPhyClasses.SimpleFormula.Cast(valueFlowConnector.GenericDstEnd.Impl);

                if (!valueInstances.ContainsKey(src) || !simpleFormulaCache.ContainsKey(dst))
                {
                    continue;
                }

                dm.Connectors.AddItem(new ValueConnector
                {
                    SourceValue      = valueInstances[src],
                    DestinationValue = simpleFormulaCache[dst]
                });
            }

            #endregion

            #region SimpleFormula -> Property

            foreach (var valueFlowConnector in valueFlowConnectors.Where(x => x.GenericDstEnd.Kind == "Property" && x.GenericSrcEnd.Kind == "SimpleFormula"))
            {
                var src = CyPhyClasses.SimpleFormula.Cast(valueFlowConnector.GenericSrcEnd.Impl);
                var dst = CyPhyClasses.Property.Cast(valueFlowConnector.GenericDstEnd.Impl);

                if (!valueInstances.ContainsKey(dst) || !simpleFormulaCache.ContainsKey(src))
                {
                    continue;
                }

                dm.Connectors.AddItem(new ValueConnector
                {
                    SourceValue      = simpleFormulaCache[src],
                    DestinationValue = valueInstances[dst]
                });
            }

            #endregion

            #region Param -> Param

            foreach (var valueFlowConnector in valueFlowConnectors.Where(x => x.GenericDstEnd.Kind == "Parameter" && x.GenericSrcEnd.Kind == "Parameter"))
            {
                var src = CyPhyClasses.Parameter.Cast(valueFlowConnector.GenericSrcEnd.Impl);
                var dst = CyPhyClasses.Parameter.Cast(valueFlowConnector.GenericDstEnd.Impl);

                if (!valueInstances.ContainsKey(dst) || !valueInstances.ContainsKey(src))
                {
                    continue;
                }

                dm.Connectors.AddItem(new ValueConnector
                {
                    SourceValue      = valueInstances[src],
                    DestinationValue = valueInstances[dst]
                });
            }

            #endregion
        }