public static make MapCarMakeForCreate(CarMakeModel model)
        {
            var entity = new make();

            MapCarMakeForEdit(model, entity);
            return(entity);
        }
 public static CarMakeModel MapCarMakeForDisplay(make model)
 {
     return(new CarMakeModel
     {
         Id = model.id,
         Name = model.Name.Trim(),
         SortOrder = model.SortOrder ?? 0
     });
 }
 private static MakeResource Map(make carMake)
 {
     return(new MakeResource {
         Id = carMake.id, Name = carMake.Name
     });
 }
 public static void MapCarMakeForEdit(CarMakeModel model, make entity)
 {
     entity.Name      = model.Name.Trim();
     entity.SortOrder = model.SortOrder;
 }
Ejemplo n.º 5
0
        static public string target(string s, string su = "")
        {
            File.AppendAllText("logger", "\nTarget start - " + s);


            if (s == null || s == "")
            {
                return("");
            }

            if (s.Contains("$") && targs.ContainsKey(s) == false)
            {
                string v = Expand(s);

                if (v != "")
                {
                    s = v;
                }

                su = make.findVariables(s);
            }
            else
            {
                su = su.Trim();

                if (targs.ContainsKey(s) == false)
                {
                    bool istarget = false;
                    if (su != "")
                    {
                        if (targs.ContainsKey(su))
                        {
                            s        = su;
                            istarget = true;
                        }
                        else
                        {
                            s = su;
                        }
                    }

                    {
                        if (istarget == false)
                        {
                            string c = s.Replace("$(", "").Replace(")", "").Trim();
                            if (c.StartsWith("shell"))
                            {
                                Functions.Call(c);
                                return(su);
                            }
                            //return su;
                        }
                    }
                }
            }

            File.AppendAllText("logger", "\nTarget reading - " + s);



            List <string> tt = new List <string>();

            if (s.Contains(" "))
            {
                string[] cs = s.Split(" ".ToCharArray());
                foreach (string v in cs)
                {
                    tt.Add(v);
                }
                tt = ConsoleApplication5.make.RemoveEmpty(tt);
            }
            else
            {
                tt.Add(s);
            }

            File.AppendAllText("logger", "\nTarget iterate");

            foreach (string c in tt)
            {
                s = c;

                if (targs.ContainsKey(s) == false)
                {
                    continue;
                }

                MakeFileLineProcessor.target target = targs[s];

                List <string> r = target.Expand();

                r = MakeFileLineProcessor.target.MergeFunctions(r);

                string u = target.prereq;

                string p = ExtractArray(u);

                //p = make.findVariables(p);

                List <string> files = new List <string>();

                string[] cc = p.Replace("\r", "").Trim().Split("\t".ToCharArray());

                cc = RemoveEmpty(cc);

                foreach (string b in cc)
                //if (b.Trim() != "")

                {
                    //   if (make.parser.targs.ContainsKey(b) == false)
                    //        if (b.Contains(".") == false)
                    //            continue;

                    if (make.parser.targs.ContainsKey(b))
                    {
                        string file = Functions.target(b);
                        if (file.Trim() != "")
                        {
                            files.Add(file);
                        }

                        continue;
                    }


                    string name = Expand(b);

                    if (File.Exists(name))
                    {
                        if (File.Exists(b))
                        {
                        }
                    }

                    //if (make.parser.targs.ContainsKey(b) == false)
                    //    continue;


                    string[] bb = name.Split(" ".ToCharArray());

                    bb = RemoveEmpty(bb);

                    foreach (string v in bb)
                    {
                        string vv = make.findVariables(v);

                        if (make.parser.targs.ContainsKey(vv) == false)
                        {
                            string res = "";
                            string rs  = GetImpliciteRule(make.parser.targs, vv, out res);
                            if (rs.Trim() == "")
                            {
                                continue;
                            }
                            MakeFileLineProcessor.target tg = make.parser.targs[rs];

                            string rec = tg.recp[0];

                            string rule = rec.Replace("$@", vv);

                            rule = make.findVariables(rule);

                            rule = rule.Replace("$<", res);



                            Functions.Call(rule);
                        }
                        else
                        {
                            string file = Functions.target(vv);
                            if (file.Trim() != "")
                            {
                                files.Add(file);
                            }
                        }
                    }

                    if (make.parser.targs.ContainsKey(b) == false)
                    {
                        string res = "";



                        string rs = GetImpliciteRule(make.parser.targs, b, out res);
                        if (rs.Trim() == "")
                        {
                            continue;
                        }
                        MakeFileLineProcessor.target tg = make.parser.targs[rs];

                        string rec = tg.recp[0];

                        string rule = rec.Replace("$@", b);

                        rule = make.findVariables(rule);

                        rule = rule.Replace("$<", res);



                        Functions.Call(rule);
                    }
                }



                if (r.Count > 1 || (r.Count == 1 && target.prereq != ""))
                {
                    r.RemoveAt(0);
                }

                if (target.tar != null)
                {
                    tarmake tar = target.tar;

                    string v = tar.ToSource();

                    string [] m = v.Split("\n".ToCharArray());

                    m = RemoveEmpty(m);

                    r.Clear();

                    foreach (string g in m)
                    {
                        if (g.StartsWith("ln") == false)
                        {
                            r.Add(g);
                        }
                    }
                    string content = "";
                    foreach (string g in r)
                    {
                        content += "\n" + g;
                    }

                    r.Clear();
                    r.Add(content);
                }

                foreach (string d in r)
                {
                    File.AppendAllText("logger", "\nRecipe reading - " + d);

                    string name = target.name;

                    if (name.Contains("$"))
                    {
                        name = make.findVariables(name);
                    }

                    if (d.Trim().StartsWith("$(MAKE)"))
                    {
                        string g = d.Trim().Replace("$(MAKE)", "").Trim();

                        g = make.findVariables(g);

                        Functions.target(g);

                        File.AppendAllText("logger", "\nCall - " + g);
                    }
                    else
                    {
                        if (d.Trim().StartsWith("$(if") || d.Trim().StartsWith("($("))
                        {
                            make   mk = new ConsoleApplication5.make(d);
                            string cs = mk.ToSource();
                            Functions.Call(cs);
                        }
                        else if (d.Trim().StartsWith("$(") || d.Trim().StartsWith("($("))
                        {
                            File.AppendAllText("logger", "\nTarget call - " + d);

                            List <string> bb = MakeFileLineProcessor.target.MergeFunctions(d);
                            List <string> dd = MakeFileLineProcessor.target.MergeFunctions(bb);

                            make mk = new make(d);

                            make.run = true;
                            string g = d;
                            if (g.Contains("$(@F)"))
                            {
                                g = g.Replace("$(@F)", name);
                            }
                            g = g.Replace("\\", "");
                            g = make.findVariables(g);
                            if (g.Contains("$<"))
                            {
                                string[] dc = target.recp[0].Split(" ".ToCharArray());
                                dc = RemoveEmpty(dc);
                                g  = g.Replace("$<", make.findVariables(dc[0]));
                            }
                            if (g.Contains("$^"))
                            {
                                g = g.Replace("$^", make.findVariables(target.prereq));
                            }
                            g = g.Replace("-DQUAD_PRECISION", "");

                            g = g.Trim().Replace("$@", name);

                            g = g.Replace("\n", "");

                            Console.WriteLine(g);

                            // if(g.Trim().StartsWith("gcc"))
                            //     g += " -UDOUBLE -UCOMPLEX -DDOUBLE -DCOMPLEX -DXDOUBLE -DXCOMPLEX -Wno-error";

                            Functions.Call(g);

                            make.run = false;

                            File.AppendAllText("logger", "\nCall - " + g);

                            //Functions.Call(g);
                        }
                        else if (d.Trim().StartsWith("@"))

                        {
                            string g = d.Trim();
                            make.run = true;

                            make.run = false;


                            //string[] bc = d.Split("\n@".ToCharArray());

                            //foreach (string f in bc)
                            {
                                //  g = f;

                                g = g.Replace("$$", "$");

                                g = g.Replace("\\\\", "\\");

                                //g = g.Replace("\r", "");

                                //g = g.Replace("\n", "");

                                if (g.Contains("$(@F)"))
                                {
                                    g = g.Replace("$(@F)", target.name);
                                }

                                g = g.Trim().Replace("$@", target.name);

                                g = g.Trim().Replace("@-", "");

                                g = g.Trim().Replace("@", "");

                                g = make.findVariables(g);

                                g = g.Replace("$$", "$");

                                Functions.Call(g);

                                Console.WriteLine(g);

                                File.AppendAllText("logger", "\nCall - " + g);
                            }
                        }
                        else
                        {
                            string g = d.Replace("$$", "$");

                            if (g.Contains("$(@F)"))                 //
                            {
                                g = g.Replace("$(@F)", target.name); //
                            }
                            g = g.Trim().Replace("$@", target.name);

                            g = g.Trim().Replace("@", ""); //

                            g = g.Replace("\\", "");

                            g = make.substituteVariables(g, true);

                            if (g.Contains("$^"))
                            {
                                string[] dc = target.recp[0].Split(" ".ToCharArray());
                                g = g.Replace("$<", target.prerequ);
                            }

                            g = g.Replace("\n", " ");

                            //g = g.Replace("\\", "");

                            //g = g.Replace("/", "\\");

                            //g = g.Replace(" then ", "then echo ok; ");

                            //g = g.Replace("exit 1", "then echo no; ");

                            Console.WriteLine("Recipe " + g);

                            if (g != "")
                            {
                                if (g.Contains("PKG") == false)
                                {
                                    Functions.Call(g);
                                }
                            }

                            File.AppendAllText("logger", "\nCall - " + g);
                        }
                    }
                }
            }
            return("");
        }
Ejemplo n.º 6
0
	- Puzzle building feedback (make base Tiling generation also report progress).  Catch exceptions when doing this.