public Grade GetGradeByName(ClipperData clipperData, int?idLoadPort)
        {
            if (string.IsNullOrWhiteSpace(clipperData.Grade) && string.IsNullOrWhiteSpace(clipperData.Charter_Grade))
            {
                return(null);
            }
            string stemGrade = !string.IsNullOrWhiteSpace(clipperData.Grade)
                ? clipperData.Grade
                : clipperData.Charter_Grade;

            var mappedGrade = string.Empty;

            mappedGrade = GetTargoValue("Grade", stemGrade).ToLower();

            if (mappedGrade?.ToLower() == "exception")
            {
                mappedGrade = ResolveGrade(stemGrade, clipperData.LoadPort);
            }

            return(GradesList.Any(x => x.Name.ToLower() == mappedGrade.ToLower())
                ? GradesList.FirstOrDefault(x => x.Name.ToLower() == mappedGrade.ToLower())
                : !string.IsNullOrWhiteSpace(mappedGrade)
                    ? AddGrade(mappedGrade.ToUpper())
                    : null);
        }
        private void SetGlobalVariables()
        {
            if (SourcesList.Any(s => s.Type == "Stem" && s.Name == "Clipper"))
            {
                _sourceClipper = SourcesList.FirstOrDefault(s => s.Type == "Stem" && s.Name == "Clipper").Id;
            }

            if (PortsList.Any(p => p.Name.ToLower().Contains("unallocated")))
            {
                _portUnallocated = PortsList.FirstOrDefault(p => p.Name.ToLower().Contains("unallocated")).Id;
            }
            else
            {
                throw new Exception("Add unallocated port to use as parent for new ports");
            }

            if (GradesList.Any(p => p.Name.ToLower().Contains("unallocated")))
            {
                _gradeUnallocated = GradesList.FirstOrDefault(g => g.Name.ToLower().Contains("unallocated")).Id;
            }
            else
            {
                throw new Exception("Add unallocated grade to use as parent for new grades");
            }
        }
        private Grade AddGrade(string name)
        {
            var newObj = new Grade()
            {
                Name     = name,
                IdParent = _gradeUnallocated
            };

            string sql =
                $"IF (SELECT top 1 Id from [Grade] where Name = @name) IS NULL BEGIN  INSERT INTO Grade (Name, IdParent, IdSource) VALUES (@name,@idParent,@_sourceClipper); SELECT CAST(SCOPE_IDENTITY() as int) END ELSE (SELECT top 1 Id from [Grade] where Name = @name)";

            using (var connection = ConnectionFactory.GetOpenConnection())
            {
                newObj.Id = connection.Query <int>(sql, new { newObj.Name, newObj.IdParent, _sourceClipper }).Single();

                if (GradesList.Select(s => s.Id == newObj.Id).Count() == 0)
                {
                    GradesList.Add(newObj);
                }
            }

            return(newObj);
        }
Exemplo n.º 4
0
 static void AddStudentGrade(double aGrade)
 {
     GradesList.Add(aGrade);
 }
        private static bool LoadData(String fileName)
        {
            bool succeeded = true;

            try
            {
                using (BinaryReader reader = new BinaryReader(new FileStream(fileName, FileMode.Open)))
                {
                    // conversion, lines, grades, abbr, waste min, waste max
                    int listLen = reader.ReadInt32();

                    StringDoubleConversionList.Clear();
                    for (; listLen > 0; --listLen)
                    {
                        String item1 = reader.ReadString();
                        double item2 = reader.ReadDouble();
                        StringDoubleConversionList.Add(new Tuple <string, double>(item1, item2));
                    }

                    //grades and abbr
                    listLen = reader.ReadInt32();
                    GradesList.Clear();
                    GradeAbbrList.Clear();

                    for (; listLen > 0; --listLen)
                    {
                        String grade = reader.ReadString();
                        String abbr  = reader.ReadString();
                        GradesList.Add(grade);
                        GradeAbbrList.Add(abbr);
                    }

                    // lines
                    listLen = reader.ReadInt32();
                    CoatingLines.Clear();
                    for (; listLen > 0; --listLen)
                    {
                        String line = reader.ReadString();
                        CoatingLines.Add(line);
                    }

                    //waste
                    WasteMin     = reader.ReadDouble();
                    WasteMax     = reader.ReadDouble();
                    CurrentWaste = reader.ReadDouble();

                    listLen = reader.ReadInt32();
                    TexturesList.Clear();
                    for (; listLen > 0; --listLen)
                    {
                        TexturesList.Add(Texture.Load(reader));
                    }


                    // WiP Marker
                    WiPMarker = reader.ReadChar();
                }
            }
            catch (Exception)
            {
                succeeded = false;
            }
            if (succeeded)
            {
                _loaded = true;
            }

            return(succeeded);
        }
        private string ResolveGrade(string clipperGrade, string loadPort)
        {
            string portName = loadPort;

            if (string.IsNullOrWhiteSpace(portName))
            {
                return(clipperGrade);
            }

            if (clipperGrade.ToLower() == "turkish crude")
            {
                if (portName.ToLower() == "ceyhan botas")
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "kirkuk"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "kirkuk")?.Name);
                    }
                }
            }
            if (clipperGrade.ToLower() == "russian export blend" ||
                clipperGrade.ToLower() == "urals")
            {
                if (portName.ToLower() == "novorossiysk")
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "urals med"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "urals med")?.Name);
                    }
                }
                else
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "urals nth"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "urals nth")?.Name);
                    }
                }
            }
            if (clipperGrade.ToLower() == "russian crude")
            {
                if (portName.ToLower() == "novorossiysk")
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "russian crude east"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "russian crude east")?.Name);
                    }
                }
                else
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "russian crude nwe"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "russian crude nwe")?.Name);
                    }
                }
            }
            if (clipperGrade.ToLower() == "iraqi crude")
            {
                if (portName.ToLower() == "ceyhan botas" ||
                    portName.ToLower() == "mersin" ||
                    portName.ToLower().Contains("dortyol"))
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "kirkuk"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "kirkuk")?.Name);
                    }
                }
                else
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "iraq crude south"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "iraq crude south")?.Name);
                    }
                }
            }

            if (clipperGrade.ToLower() == "canadian crude" ||
                clipperGrade.ToUpper() == "GIRASSOL" ||
                clipperGrade.ToUpper() == "HEBRON" ||
                clipperGrade.ToUpper() == "HIBERNIA" ||
                clipperGrade.ToUpper() == "HUNGO" ||
                clipperGrade.ToUpper() == "SANGOS" ||
                clipperGrade.ToUpper() == "TERRA NOVA" ||
                clipperGrade.ToUpper() == "WHITE ROSE")
            {
                if (portName.ToLower().Contains("whiffen"))
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "canadian sweet crude"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "canadian sweet crude")?.Name);
                    }
                    return("Canadian Sweet Crude");
                }
            }

            if (clipperGrade.ToLower() == "crude")
            {
                if (portName.ToLower().Contains("whiffen"))
                {
                    if (GradesList.Any(g => g.Name.ToLower() == "canadian sweet crude"))
                    {
                        return(GradesList.FirstOrDefault(g => g.Name.ToLower() == "canadian sweet crude")?.Name);
                    }
                    return("Canadian Sweet Crude");
                }
                return(portName + " Crude");
            }

            return(clipperGrade);
        }