public void DrogueRunExtraB_Every_Property_Has_Get_Set_Test()
        {
            string val1 = "Some text";

            drogueRunExtraB.DrogueRunReportTest = val1;
            Assert.AreEqual(val1, drogueRunExtraB.DrogueRunReportTest);
            string val2 = "Some text";

            drogueRunExtraB.LastUpdateContactText = val2;
            Assert.AreEqual(val2, drogueRunExtraB.LastUpdateContactText);
            string val3 = "Some text";

            drogueRunExtraB.DrogueTypeText = val3;
            Assert.AreEqual(val3, drogueRunExtraB.DrogueTypeText);
            int val4 = 45;

            drogueRunExtraB.DrogueRunID = val4;
            Assert.AreEqual(val4, drogueRunExtraB.DrogueRunID);
            int val5 = 45;

            drogueRunExtraB.SubsectorTVItemID = val5;
            Assert.AreEqual(val5, drogueRunExtraB.SubsectorTVItemID);
            int val6 = 45;

            drogueRunExtraB.DrogueNumber = val6;
            Assert.AreEqual(val6, drogueRunExtraB.DrogueNumber);
            DrogueTypeEnum val7 = (DrogueTypeEnum)3;

            drogueRunExtraB.DrogueType = val7;
            Assert.AreEqual(val7, drogueRunExtraB.DrogueType);
            DateTime val8 = new DateTime(2010, 3, 4);

            drogueRunExtraB.RunStartDateTime = val8;
            Assert.AreEqual(val8, drogueRunExtraB.RunStartDateTime);
            bool val9 = true;

            drogueRunExtraB.IsRisingTide = val9;
            Assert.AreEqual(val9, drogueRunExtraB.IsRisingTide);
            DateTime val10 = new DateTime(2010, 3, 4);

            drogueRunExtraB.LastUpdateDate_UTC = val10;
            Assert.AreEqual(val10, drogueRunExtraB.LastUpdateDate_UTC);
            int val11 = 45;

            drogueRunExtraB.LastUpdateContactTVItemID = val11;
            Assert.AreEqual(val11, drogueRunExtraB.LastUpdateContactTVItemID);
            bool val12 = true;

            drogueRunExtraB.HasErrors = val12;
            Assert.AreEqual(val12, drogueRunExtraB.HasErrors);
            IEnumerable <ValidationResult> val39 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            drogueRunExtraB.ValidationResults = val39;
            Assert.AreEqual(val39, drogueRunExtraB.ValidationResults);
        }
        public void DrogueRun_Every_Property_Has_Get_Set_Test()
        {
            int val1 = 45;

            drogueRun.DrogueRunID = val1;
            Assert.AreEqual(val1, drogueRun.DrogueRunID);
            int val2 = 45;

            drogueRun.SubsectorTVItemID = val2;
            Assert.AreEqual(val2, drogueRun.SubsectorTVItemID);
            int val3 = 45;

            drogueRun.DrogueNumber = val3;
            Assert.AreEqual(val3, drogueRun.DrogueNumber);
            DrogueTypeEnum val4 = (DrogueTypeEnum)3;

            drogueRun.DrogueType = val4;
            Assert.AreEqual(val4, drogueRun.DrogueType);
            DateTime val5 = new DateTime(2010, 3, 4);

            drogueRun.RunStartDateTime = val5;
            Assert.AreEqual(val5, drogueRun.RunStartDateTime);
            bool val6 = true;

            drogueRun.IsRisingTide = val6;
            Assert.AreEqual(val6, drogueRun.IsRisingTide);
            DateTime val7 = new DateTime(2010, 3, 4);

            drogueRun.LastUpdateDate_UTC = val7;
            Assert.AreEqual(val7, drogueRun.LastUpdateDate_UTC);
            int val8 = 45;

            drogueRun.LastUpdateContactTVItemID = val8;
            Assert.AreEqual(val8, drogueRun.LastUpdateContactTVItemID);
            bool val9 = true;

            drogueRun.HasErrors = val9;
            Assert.AreEqual(val9, drogueRun.HasErrors);
            IEnumerable <ValidationResult> val30 = new List <ValidationResult>()
            {
                new ValidationResult("First CSSPError Message")
            }.AsEnumerable();

            drogueRun.ValidationResults = val30;
            Assert.AreEqual(val30, drogueRun.ValidationResults);
        }
Esempio n. 3
0
        // Post
        public DrogueRunModel PostAddOrModifyDB(FormCollection fc)
        {
            int  tempInt                = 0;
            int  DrogueRunID            = 0;
            int  SubsectorTVItemID      = 0;
            int  DrogueNumber           = 0;
            int  TakeValueEveryXMinutes = 0;
            int  TakeValueEveryXSeconds = 0;
            bool IsRisingTide           = true;

            DrogueTypeEnum DrogueType       = DrogueTypeEnum.Error;
            DateTime       RunStartDateTime = DateTime.Now;
            string         DroguePoints     = "";

            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrWhiteSpace(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }


            int.TryParse(fc["DrogueRunID"], out DrogueRunID);
            // could be 0 if 0 then we need to add the new DrogueRun

            DrogueRunModel drogueRunModelToChange = new DrogueRunModel();

            if (DrogueRunID != 0)
            {
                drogueRunModelToChange = GetDrogueRunModelWithDrogueRunIDDB(DrogueRunID);
                if (!string.IsNullOrWhiteSpace(drogueRunModelToChange.Error))
                {
                    return(drogueRunModelToChange);
                }
            }

            int.TryParse(fc["SubsectorTVItemID"], out SubsectorTVItemID);
            if (SubsectorTVItemID == 0)
            {
                return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.SubsectorTVItemID)));
            }

            int.TryParse(fc["TakeValueEveryXMinutes"], out TakeValueEveryXMinutes);

            TakeValueEveryXSeconds = TakeValueEveryXMinutes * 60;

            int.TryParse(fc["DrogueNumber"], out DrogueNumber);
            if (DrogueNumber == 0)
            {
                return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.DrogueNumber)));
            }

            if (string.IsNullOrWhiteSpace(fc["DrogueType"]))
            {
                return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.DrogueType)));
            }
            else
            {
                int.TryParse(fc["DrogueType"], out tempInt);
                DrogueType = (DrogueTypeEnum)tempInt;
            }

            if (string.IsNullOrWhiteSpace(fc["IsRisingTide"]))
            {
                IsRisingTide = false;
            }

            DroguePoints = fc["DroguePoints"];

            DrogueRunModel drogueRunModelRet = new DrogueRunModel();

            using (TransactionScope ts = new TransactionScope())
            {
                if (DrogueRunID == 0)
                {
                    DrogueRunModel drogueRunModelNew = new DrogueRunModel()
                    {
                        DBCommand         = DBCommandEnum.Original,
                        DrogueNumber      = DrogueNumber,
                        DrogueType        = DrogueType,
                        RunStartDateTime  = RunStartDateTime,
                        SubsectorTVItemID = SubsectorTVItemID,
                        IsRisingTide      = IsRisingTide,
                    };

                    drogueRunModelRet = PostAddDrogueRunDB(drogueRunModelNew);
                }
                else
                {
                    drogueRunModelToChange.DrogueNumber     = DrogueNumber;
                    drogueRunModelToChange.DrogueType       = DrogueType;
                    drogueRunModelToChange.RunStartDateTime = RunStartDateTime;
                    drogueRunModelToChange.IsRisingTide     = IsRisingTide;

                    drogueRunModelRet = PostUpdateDrogueRunDB(drogueRunModelToChange);
                }

                //    ts.Complete();
                //}

                if (string.IsNullOrWhiteSpace(drogueRunModelRet.Error))
                {
                    int Ordinal = 0;
                    List <DrogueRunPositionModel> drogueRunPositionModelList = new List <DrogueRunPositionModel>();
                    List <string> lineList = DroguePoints.Split("\r\n".ToCharArray(), StringSplitOptions.None).ToList();

                    DateTime OldStepDate = new DateTime();
                    foreach (string s in lineList)
                    {
                        if (s.Trim().Length == 0)
                        {
                            continue;
                        }

                        List <string> lineValList = s.Split(" ".ToCharArray(), StringSplitOptions.None).ToList();
                        if (lineValList.Count != 4)
                        {
                            return(ReturnError(ServiceRes.DroguePointsNotWellFormed));
                        }

                        if (!float.TryParse(lineValList[0], out float Lat))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Lat)));
                        }

                        if (!float.TryParse(lineValList[1], out float Lng))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Lng)));
                        }

                        if (!int.TryParse(lineValList[2].Substring(0, 4), out int Year))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Year)));
                        }

                        string MonthText = lineValList[2].Substring(5, 2);
                        if (MonthText.StartsWith("0"))
                        {
                            MonthText = MonthText.Substring(1);
                        }
                        if (!int.TryParse(MonthText, out int Month))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Month)));
                        }

                        string DayText = lineValList[2].Substring(8, 2);
                        if (DayText.StartsWith("0"))
                        {
                            DayText = DayText.Substring(1);
                        }
                        if (!int.TryParse(DayText, out int Day))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Day)));
                        }

                        string HourText = lineValList[3].Substring(0, 2);
                        if (HourText.StartsWith("0"))
                        {
                            HourText = HourText.Substring(1);
                        }
                        if (!int.TryParse(HourText, out int Hour))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Hour)));
                        }

                        string MinuteText = lineValList[3].Substring(3, 2);
                        if (MinuteText.StartsWith("0"))
                        {
                            MinuteText = MinuteText.Substring(1);
                        }
                        if (!int.TryParse(MinuteText, out int Minute))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Minute)));
                        }

                        if (!int.TryParse(lineValList[3].Substring(6, 2), out int Second))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotParse_, ServiceRes.Second)));
                        }

                        DateTime StepDate = new DateTime(Year, Month, Day, Hour, Minute, Second);

                        if (StepDate <= OldStepDate)
                        {
                            return(ReturnError(string.Format(ServiceRes.DatesAreNotAllInChronologicalOrder_And_, StepDate, OldStepDate)));
                        }

                        TimeSpan timeSpan = new TimeSpan(StepDate.Ticks - OldStepDate.Ticks);

                        if (timeSpan.TotalSeconds > TakeValueEveryXSeconds || TakeValueEveryXMinutes == 0)
                        {
                            DrogueRunPositionModel drogueRunPositionModel = new DrogueRunPositionModel()
                            {
                                DBCommand               = DBCommandEnum.Original,
                                StepLat                 = Lat,
                                StepLng                 = Lng,
                                StepDateTime_Local      = StepDate,
                                Ordinal                 = Ordinal,
                                DrogueRunID             = drogueRunModelRet.DrogueRunID,
                                CalculatedSpeed_m_s     = 0.0f,
                                CalculatedDirection_deg = 0.0f,
                            };

                            drogueRunPositionModelList.Add(drogueRunPositionModel);

                            Ordinal += 1;

                            OldStepDate = StepDate;
                        }
                    }

                    for (int i = 0, count = drogueRunPositionModelList.Count - 1; i < count; i++)
                    {
                        double   dist     = _MapInfoService.CalculateDistance((double)drogueRunPositionModelList[i].StepLat * d2r, (double)drogueRunPositionModelList[i].StepLng * d2r, (double)drogueRunPositionModelList[i + 1].StepLat * d2r, (double)drogueRunPositionModelList[i + 1].StepLng * d2r, base.R);
                        TimeSpan timeSpan = new TimeSpan(drogueRunPositionModelList[i + 1].StepDateTime_Local.Ticks - drogueRunPositionModelList[i].StepDateTime_Local.Ticks);
                        float    Speed    = Math.Abs((float)(dist / timeSpan.TotalSeconds));
                        drogueRunPositionModelList[i].CalculatedSpeed_m_s = Speed;

                        double StepLat = drogueRunPositionModelList[i + 1].StepLat - drogueRunPositionModelList[i].StepLat;
                        double StepLng = drogueRunPositionModelList[i + 1].StepLng - drogueRunPositionModelList[i].StepLng;

                        double angle = Math.Atan2(StepLat, StepLng) * 180 / Math.PI;

                        if (StepLat >= 0.0D && StepLng >= 0.0D)
                        {
                            angle = 90 - angle;
                        }
                        else if (StepLat <= 0.0D && StepLng >= 0.0D)
                        {
                            angle = 90 + Math.Abs(angle);
                        }
                        else if (StepLat <= 0.0D && StepLng <= 0.0D)
                        {
                            angle = 90 + Math.Abs(angle);
                        }
                        else if (StepLat >= 0.0D && StepLng <= 0.0D)
                        {
                            angle = 360 - Math.Abs(angle) + 90;
                        }
                        else
                        {
                            angle = 0.0f;
                        }

                        if (drogueRunPositionModelList[i].StepLat == drogueRunPositionModelList[i + 1].StepLat && drogueRunPositionModelList[i].StepLng == drogueRunPositionModelList[i + 1].StepLng)
                        {
                            Speed = 0.0f;
                            angle = 0.0f;
                        }

                        drogueRunPositionModelList[i].CalculatedDirection_deg = (float)angle;
                    }

                    if (drogueRunPositionModelList.Count > 1)
                    {
                        drogueRunPositionModelList[drogueRunPositionModelList.Count - 1].CalculatedSpeed_m_s     = drogueRunPositionModelList[drogueRunPositionModelList.Count - 2].CalculatedSpeed_m_s;
                        drogueRunPositionModelList[drogueRunPositionModelList.Count - 1].CalculatedDirection_deg = drogueRunPositionModelList[drogueRunPositionModelList.Count - 2].CalculatedDirection_deg;
                    }

                    List <DrogueRunPositionModel> drogueRunPositionModelListInDB = _DrogueRunPositionService.GetDrogueRunPositionModelListWithDrogueRunIDDB(drogueRunModelRet.DrogueRunID).OrderBy(c => c.Ordinal).ToList();

                    if (drogueRunPositionModelList.Count == drogueRunPositionModelListInDB.Count)
                    {
                        for (int i = 0, count = drogueRunPositionModelList.Count; i < count; i++)
                        {
                            drogueRunPositionModelList[i].DrogueRunPositionID = drogueRunPositionModelListInDB[i].DrogueRunPositionID;
                            DrogueRunPositionModel drogueRunPositionModel = _DrogueRunPositionService.PostUpdateDrogueRunPositionDB(drogueRunPositionModelList[i]);
                            if (!string.IsNullOrWhiteSpace(drogueRunPositionModel.Error))
                            {
                                return(ReturnError(drogueRunPositionModel.Error));
                            }
                        }
                    }
                    else if (drogueRunPositionModelList.Count > drogueRunPositionModelListInDB.Count)
                    {
                        for (int i = 0, count = drogueRunPositionModelListInDB.Count; i < count; i++)
                        {
                            drogueRunPositionModelList[i].DrogueRunPositionID = drogueRunPositionModelListInDB[i].DrogueRunPositionID;
                            DrogueRunPositionModel drogueRunPositionModel = _DrogueRunPositionService.PostUpdateDrogueRunPositionDB(drogueRunPositionModelList[i]);
                            if (!string.IsNullOrWhiteSpace(drogueRunPositionModel.Error))
                            {
                                return(ReturnError(drogueRunPositionModel.Error));
                            }
                        }
                        for (int i = drogueRunPositionModelListInDB.Count, count = drogueRunPositionModelList.Count; i < count; i++)
                        {
                            DrogueRunPositionModel drogueRunPositionModel = _DrogueRunPositionService.PostAddDrogueRunPositionDB(drogueRunPositionModelList[i]);
                            if (!string.IsNullOrWhiteSpace(drogueRunPositionModel.Error))
                            {
                                return(ReturnError(drogueRunPositionModel.Error));
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0, count = drogueRunPositionModelList.Count; i < count; i++)
                        {
                            drogueRunPositionModelList[i].DrogueRunPositionID = drogueRunPositionModelListInDB[i].DrogueRunPositionID;
                            DrogueRunPositionModel drogueRunPositionModel = _DrogueRunPositionService.PostUpdateDrogueRunPositionDB(drogueRunPositionModelList[i]);
                            if (!string.IsNullOrWhiteSpace(drogueRunPositionModel.Error))
                            {
                                return(ReturnError(drogueRunPositionModel.Error));
                            }
                        }
                        for (int i = drogueRunPositionModelList.Count, count = drogueRunPositionModelListInDB.Count; i < count; i++)
                        {
                            DrogueRunPositionModel drogueRunPositionModel = _DrogueRunPositionService.PostDeleteDrogueRunPositionDB(drogueRunPositionModelListInDB[i].DrogueRunPositionID);
                            if (!string.IsNullOrWhiteSpace(drogueRunPositionModel.Error))
                            {
                                return(ReturnError(drogueRunPositionModel.Error));
                            }
                        }
                    }

                    if (drogueRunPositionModelList.Count > 0)
                    {
                        drogueRunModelRet.RunStartDateTime = drogueRunPositionModelList[0].StepDateTime_Local;

                        drogueRunModelRet = PostUpdateDrogueRunDB(drogueRunModelRet);
                    }

                    ts.Complete();
                }
            }

            return(drogueRunModelRet);
        }