public CDataResult <int> AddTide(CTideInput input)
        {
            var newTide = new CTide()
            {
                PublicDate = input.PublicDate,
                FloodTime1 = input.FloodTime1,
                FloodHigh1 = input.FloodHigh1,
                FloodTime2 = input.FloodTime2,
                FloodHigh2 = input.FloodHigh2,
                FloodTime3 = input.FloodTime3,
                FloodHigh3 = input.FloodHigh3,
                FloodTime4 = input.FloodTime4,
                FloodHigh4 = input.FloodHigh4,
                CompanyId  = input.CompanyId
            };

            var newTideId = this._TideRepository.InsertAndGetId(newTide);

            return(new CDataResult <int>()
            {
                IsSuccess = true,
                ErrorMessage = null,
                Data = newTideId
            });
        }
        public CDataResult <bool> ImportTides(CTideInput input)
        {
            byte[]          buffer            = Convert.FromBase64String(input.File_Base64);
            MemoryStream    ms                = new MemoryStream(buffer);
            string          sheetName         = "潮汐时间表";
            string          defaultDatePrefix = "1980-01-01 ";
            List <object[]> dataList          = ExcelExporter <CTide> .ReadFile(ms, sheetName, 20000, 9, 2);

            List <CTide> tideList = new List <CTide>();

            for (int i = 0; i < dataList.Count; i++)
            {
                object[] tideData = dataList[i];
                CTide    tide     = new CTide();
                DateTime publicDate;
                if (!DateTime.TryParse(tideData[0].ToString(), out publicDate))
                {
                    continue;
                }
                tide.PublicDate = publicDate;
                //tide.MoonDate = tideData[1].ToString();
                //DateTime flood1Time;
                //if (!DateTime.TryParse(defaultDatePrefix + tideData[2].ToString(), out flood1Time)) continue;
                //tide.Flood1 = flood1Time;
                //DateTime ebb1Time;
                //if (!DateTime.TryParse(defaultDatePrefix + tideData[3].ToString(), out ebb1Time)) continue;
                //tide.Ebb1 = ebb1Time;
                //DateTime flood2Time;
                //if (!DateTime.TryParse(defaultDatePrefix + tideData[4].ToString(), out flood2Time)) continue;
                //tide.Flood2 = flood2Time;
                //DateTime ebb2Time;
                //if (!DateTime.TryParse(defaultDatePrefix + tideData[5].ToString(), out ebb2Time)) continue;
                //tide.Ebb2 = ebb2Time;
                //tide.PublicDate = tideData[0] == null ? string.Empty : tideData[1].ToString();
                tide.FloodTime1 = tideData[1] == null ?string.Empty:tideData[1].ToString();
                tide.FloodHigh1 = tideData[2] == null ? string.Empty : tideData[2].ToString();
                tide.FloodTime2 = tideData[3] == null ? string.Empty : tideData[3].ToString();
                tide.FloodHigh2 = tideData[4] == null ? string.Empty : tideData[4].ToString();
                tide.FloodTime3 = tideData[5] == null ? string.Empty : tideData[5].ToString();
                tide.FloodHigh3 = tideData[6] == null ? string.Empty : tideData[6].ToString();
                tide.FloodTime4 = tideData[7] == null ? string.Empty : tideData[7].ToString();
                tide.FloodHigh4 = tideData[8] == null ? string.Empty : tideData[8].ToString();
                tideList.Add(tide);
            }
            List <CTide> oldTides = _TideRepository.GetAll().ToList();

            for (int i = 0; i < oldTides.Count; i++)
            {
                _TideRepository.Delete(oldTides[i]);
            }
            for (int i = 0; i < tideList.Count; i++)
            {
                _TideRepository.Insert(tideList[i]);
            }
            return(new CDataResult <bool>()
            {
                IsSuccess = true,
                ErrorMessage = null,
                Data = true
            });
        }