Exemplo n.º 1
0
        public ClimateSite GetClimateSiteWithClimateSiteIDDB(int ClimateSiteID)
        {
            ClimateSite ClimateSite = (from c in db.ClimateSites
                                       where c.ClimateSiteID == ClimateSiteID
                                       select c).FirstOrDefault <ClimateSite>();

            return(ClimateSite);
        }
        public void ClimateSite_Controller_Put_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    ClimateSiteController climateSiteController = new ClimateSiteController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(climateSiteController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, climateSiteController.DatabaseType);

                    ClimateSite climateSiteLast = new ClimateSite();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;

                        ClimateSiteService climateSiteService = new ClimateSiteService(query, db, ContactID);
                        climateSiteLast = (from c in db.ClimateSites select c).FirstOrDefault();
                    }

                    // ok with ClimateSite info
                    IHttpActionResult jsonRet = climateSiteController.GetClimateSiteWithID(climateSiteLast.ClimateSiteID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <ClimateSite> Ret = jsonRet as OkNegotiatedContentResult <ClimateSite>;
                    ClimateSite climateSiteRet = Ret.Content;
                    Assert.AreEqual(climateSiteLast.ClimateSiteID, climateSiteRet.ClimateSiteID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Put to return success
                    IHttpActionResult jsonRet2 = climateSiteController.Put(climateSiteRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <ClimateSite> climateSiteRet2 = jsonRet2 as OkNegotiatedContentResult <ClimateSite>;
                    Assert.IsNotNull(climateSiteRet2);

                    BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest2);

                    // Put to return CSSPError because ClimateSiteID of 0 does not exist
                    climateSiteRet.ClimateSiteID = 0;
                    IHttpActionResult jsonRet3 = climateSiteController.Put(climateSiteRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    OkNegotiatedContentResult <ClimateSite> climateSiteRet3 = jsonRet3 as OkNegotiatedContentResult <ClimateSite>;
                    Assert.IsNull(climateSiteRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest3);
                }
            }
        }
Exemplo n.º 3
0
        // Post
        public ClimateSiteModel PostAddClimateSiteDB(ClimateSiteModel climateSiteModel)
        {
            string retStr = ClimateSiteModelOK(climateSiteModel);

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

            ContactOK contactOK = IsContactOK();

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

            TVItemModel tvItemModelExist = _TVItemService.GetTVItemModelWithTVItemIDDB(climateSiteModel.ClimateSiteTVItemID);

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

            ClimateSite climateSiteNew = new ClimateSite();

            retStr = FillClimateSite(climateSiteNew, climateSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                db.ClimateSites.Add(climateSiteNew);
                retStr = DoAddChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("ClimateSites", climateSiteNew.ClimateSiteID, LogCommandEnum.Add, climateSiteNew);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }
            return(GetClimateSiteModelWithClimateSiteIDDB(climateSiteNew.ClimateSiteID));
        }
Exemplo n.º 4
0
        public IHttpActionResult GetClimateSiteWithID([FromUri] int ClimateSiteID, [FromUri] string lang = "en", [FromUri] string extra = "")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                ClimateSiteService climateSiteService = new ClimateSiteService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                climateSiteService.Query = climateSiteService.FillQuery(typeof(ClimateSite), lang, 0, 1, "", "", extra);

                if (climateSiteService.Query.Extra == "A")
                {
                    ClimateSiteExtraA climateSiteExtraA = new ClimateSiteExtraA();
                    climateSiteExtraA = climateSiteService.GetClimateSiteExtraAWithClimateSiteID(ClimateSiteID);

                    if (climateSiteExtraA == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(climateSiteExtraA));
                }
                else if (climateSiteService.Query.Extra == "B")
                {
                    ClimateSiteExtraB climateSiteExtraB = new ClimateSiteExtraB();
                    climateSiteExtraB = climateSiteService.GetClimateSiteExtraBWithClimateSiteID(ClimateSiteID);

                    if (climateSiteExtraB == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(climateSiteExtraB));
                }
                else
                {
                    ClimateSite climateSite = new ClimateSite();
                    climateSite = climateSiteService.GetClimateSiteWithClimateSiteID(ClimateSiteID);

                    if (climateSite == null)
                    {
                        return(NotFound());
                    }

                    return(Ok(climateSite));
                }
            }
        }
        private bool TryToSave(ClimateSite climateSite)
        {
            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException ex)
            {
                climateSite.ValidationResults = new List <ValidationResult>()
                {
                    new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : ""))
                }.AsEnumerable();
                return(false);
            }

            return(true);
        }
        public bool Update(ClimateSite climateSite)
        {
            climateSite.ValidationResults = Validate(new ValidationContext(climateSite), ActionDBTypeEnum.Update);
            if (climateSite.ValidationResults.Count() > 0)
            {
                return(false);
            }

            db.ClimateSites.Update(climateSite);

            if (!TryToSave(climateSite))
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 7
0
        public ClimateSiteModel PostDeleteClimateSiteDB(int ClimateSiteID)
        {
            ContactOK contactOK = IsContactOK();

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

            ClimateSite climateSiteToDelete = GetClimateSiteWithClimateSiteIDDB(ClimateSiteID);

            if (climateSiteToDelete == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_ToDelete, ServiceRes.ClimateSite)));
            }

            int TVItemIDToDelete = climateSiteToDelete.ClimateSiteTVItemID;

            using (TransactionScope ts = new TransactionScope())
            {
                db.ClimateSites.Remove(climateSiteToDelete);
                string retStr = DoDeleteChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("ClimateSites", climateSiteToDelete.ClimateSiteID, LogCommandEnum.Delete, climateSiteToDelete);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                TVItemModel tvItemModelRet = _TVItemService.PostDeleteTVItemWithTVItemIDDB(TVItemIDToDelete);
                if (!string.IsNullOrWhiteSpace(tvItemModelRet.Error))
                {
                    return(ReturnError(tvItemModelRet.Error));
                }

                ts.Complete();
            }

            return(ReturnError(""));
        }
        public void ClimateSite_Controller_GetClimateSiteWithID_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    ClimateSiteController climateSiteController = new ClimateSiteController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(climateSiteController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, climateSiteController.DatabaseType);

                    ClimateSite climateSiteFirst = new ClimateSite();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        ClimateSiteService climateSiteService = new ClimateSiteService(new Query(), db, ContactID);
                        climateSiteFirst = (from c in db.ClimateSites select c).FirstOrDefault();
                    }

                    // ok with ClimateSite info
                    IHttpActionResult jsonRet = climateSiteController.GetClimateSiteWithID(climateSiteFirst.ClimateSiteID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <ClimateSite> Ret = jsonRet as OkNegotiatedContentResult <ClimateSite>;
                    ClimateSite climateSiteRet = Ret.Content;
                    Assert.AreEqual(climateSiteFirst.ClimateSiteID, climateSiteRet.ClimateSiteID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Not Found
                    IHttpActionResult jsonRet2 = climateSiteController.GetClimateSiteWithID(0);
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <ClimateSite> climateSiteRet2 = jsonRet2 as OkNegotiatedContentResult <ClimateSite>;
                    Assert.IsNull(climateSiteRet2);

                    NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult;
                    Assert.IsNotNull(notFoundRequest);
                }
            }
        }
Exemplo n.º 9
0
        public IHttpActionResult Delete([FromBody] ClimateSite climateSite, [FromUri] string lang = "en")
        {
            using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
            {
                ClimateSiteService climateSiteService = new ClimateSiteService(new Query()
                {
                    Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en)
                }, db, ContactID);

                if (!climateSiteService.Delete(climateSite))
                {
                    return(BadRequest(String.Join("|||", climateSite.ValidationResults)));
                }
                else
                {
                    climateSite.ValidationResults = null;
                    return(Ok(climateSite));
                }
            }
        }
Exemplo n.º 10
0
        // Fill
        public string FillClimateSite(ClimateSite climateSiteNew, ClimateSiteModel climateSiteModel, ContactOK contactOK)
        {
            climateSiteNew.DBCommand            = (int)climateSiteModel.DBCommand;
            climateSiteNew.ClimateSiteTVItemID  = climateSiteModel.ClimateSiteTVItemID;
            climateSiteNew.ClimateID            = climateSiteModel.ClimateID;
            climateSiteNew.ClimateSiteName      = climateSiteModel.ClimateSiteName;
            climateSiteNew.DailyEndDate_Local   = climateSiteModel.DailyEndDate_Local;
            climateSiteNew.DailyNow             = climateSiteModel.DailyNow;
            climateSiteNew.DailyStartDate_Local = climateSiteModel.DailyStartDate_Local;
            climateSiteNew.ECDBID                 = climateSiteModel.ECDBID;
            climateSiteNew.Elevation_m            = climateSiteModel.Elevation_m;
            climateSiteNew.File_desc              = climateSiteModel.File_desc;
            climateSiteNew.HourlyEndDate_Local    = climateSiteModel.HourlyEndDate_Local;
            climateSiteNew.HourlyNow              = climateSiteModel.HourlyNow;
            climateSiteNew.HourlyStartDate_Local  = climateSiteModel.HourlyStartDate_Local;
            climateSiteNew.IsQuebecSite           = climateSiteModel.IsQuebecSite;
            climateSiteNew.IsCoCoRaHS             = climateSiteModel.IsCoCoRaHS;
            climateSiteNew.MonthlyEndDate_Local   = climateSiteModel.MonthlyEndDate_Local;
            climateSiteNew.MonthlyNow             = climateSiteModel.MonthlyNow;
            climateSiteNew.MonthlyStartDate_Local = climateSiteModel.MonthlyStartDate_Local;
            climateSiteNew.Province               = climateSiteModel.Province;
            climateSiteNew.TCID               = climateSiteModel.TCID;
            climateSiteNew.TimeOffset_hour    = climateSiteModel.TimeOffset_hour;
            climateSiteNew.WMOID              = climateSiteModel.WMOID;
            climateSiteNew.LastUpdateDate_UTC = DateTime.UtcNow;
            if (contactOK == null)
            {
                climateSiteNew.LastUpdateContactTVItemID = 2;
            }
            else
            {
                climateSiteNew.LastUpdateContactTVItemID = contactOK.ContactTVItemID;
            }

            return("");
        }
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string      retStr      = "";
            Enums       enums       = new Enums(LanguageRequest);
            ClimateSite climateSite = validationContext.ObjectInstance as ClimateSite;

            climateSite.HasErrors = false;

            if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete)
            {
                if (climateSite.ClimateSiteID == 0)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "ClimateSiteID"), new[] { "ClimateSiteID" }));
                }

                if (!(from c in db.ClimateSites select c).Where(c => c.ClimateSiteID == climateSite.ClimateSiteID).Any())
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "ClimateSite", "ClimateSiteID", climateSite.ClimateSiteID.ToString()), new[] { "ClimateSiteID" }));
                }
            }

            TVItem TVItemClimateSiteTVItemID = (from c in db.TVItems where c.TVItemID == climateSite.ClimateSiteTVItemID select c).FirstOrDefault();

            if (TVItemClimateSiteTVItemID == null)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "ClimateSiteTVItemID", climateSite.ClimateSiteTVItemID.ToString()), new[] { "ClimateSiteTVItemID" }));
            }
            else
            {
                List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                {
                    TVTypeEnum.ClimateSite,
                };
                if (!AllowableTVTypes.Contains(TVItemClimateSiteTVItemID.TVType))
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "ClimateSiteTVItemID", "ClimateSite"), new[] { "ClimateSiteTVItemID" }));
                }
            }

            if (climateSite.ECDBID != null)
            {
                if (climateSite.ECDBID < 1 || climateSite.ECDBID > 100000)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "ECDBID", "1", "100000"), new[] { "ECDBID" }));
                }
            }

            if (string.IsNullOrWhiteSpace(climateSite.ClimateSiteName))
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "ClimateSiteName"), new[] { "ClimateSiteName" }));
            }

            if (!string.IsNullOrWhiteSpace(climateSite.ClimateSiteName) && climateSite.ClimateSiteName.Length > 100)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "ClimateSiteName", "100"), new[] { "ClimateSiteName" }));
            }

            if (string.IsNullOrWhiteSpace(climateSite.Province))
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "Province"), new[] { "Province" }));
            }

            if (!string.IsNullOrWhiteSpace(climateSite.Province) && climateSite.Province.Length > 4)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "Province", "4"), new[] { "Province" }));
            }

            if (climateSite.Elevation_m != null)
            {
                if (climateSite.Elevation_m < 0 || climateSite.Elevation_m > 10000)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Elevation_m", "0", "10000"), new[] { "Elevation_m" }));
                }
            }

            if (!string.IsNullOrWhiteSpace(climateSite.ClimateID) && climateSite.ClimateID.Length > 10)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "ClimateID", "10"), new[] { "ClimateID" }));
            }

            if (climateSite.WMOID != null)
            {
                if (climateSite.WMOID < 1 || climateSite.WMOID > 100000)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WMOID", "1", "100000"), new[] { "WMOID" }));
                }
            }

            if (!string.IsNullOrWhiteSpace(climateSite.TCID) && climateSite.TCID.Length > 3)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "TCID", "3"), new[] { "TCID" }));
            }

            if (climateSite.TimeOffset_hour != null)
            {
                if (climateSite.TimeOffset_hour < -10 || climateSite.TimeOffset_hour > 0)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "TimeOffset_hour", "-10", "0"), new[] { "TimeOffset_hour" }));
                }
            }

            if (!string.IsNullOrWhiteSpace(climateSite.File_desc) && climateSite.File_desc.Length > 50)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._MaxLengthIs_, "File_desc", "50"), new[] { "File_desc" }));
            }

            if (climateSite.HourlyStartDate_Local != null && ((DateTime)climateSite.HourlyStartDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "HourlyStartDate_Local", "1980"), new[] { "HourlyStartDate_Local" }));
            }

            if (climateSite.HourlyEndDate_Local != null && ((DateTime)climateSite.HourlyEndDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "HourlyEndDate_Local", "1980"), new[] { "HourlyEndDate_Local" }));
            }

            if (climateSite.DailyStartDate_Local != null && ((DateTime)climateSite.DailyStartDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "DailyStartDate_Local", "1980"), new[] { "DailyStartDate_Local" }));
            }

            if (climateSite.DailyEndDate_Local != null && ((DateTime)climateSite.DailyEndDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "DailyEndDate_Local", "1980"), new[] { "DailyEndDate_Local" }));
            }

            if (climateSite.MonthlyStartDate_Local != null && ((DateTime)climateSite.MonthlyStartDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "MonthlyStartDate_Local", "1980"), new[] { "MonthlyStartDate_Local" }));
            }

            if (climateSite.MonthlyEndDate_Local != null && ((DateTime)climateSite.MonthlyEndDate_Local).Year < 1980)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "MonthlyEndDate_Local", "1980"), new[] { "MonthlyEndDate_Local" }));
            }

            if (climateSite.LastUpdateDate_UTC.Year == 1)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" }));
            }
            else
            {
                if (climateSite.LastUpdateDate_UTC.Year < 1980)
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), new[] { "LastUpdateDate_UTC" }));
                }
            }

            TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == climateSite.LastUpdateContactTVItemID select c).FirstOrDefault();

            if (TVItemLastUpdateContactTVItemID == null)
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", climateSite.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" }));
            }
            else
            {
                List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                {
                    TVTypeEnum.Contact,
                };
                if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType))
                {
                    climateSite.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), new[] { "LastUpdateContactTVItemID" }));
                }
            }

            retStr = "";      // added to stop compiling CSSPError
            if (retStr != "") // will never be true
            {
                climateSite.HasErrors = true;
                yield return(new ValidationResult("AAA", new[] { "AAA" }));
            }
        }
Exemplo n.º 12
0
        public ClimateSiteModel PostUpdateClimateSiteDB(ClimateSiteModel climateSiteModel)
        {
            string retStr = ClimateSiteModelOK(climateSiteModel);

            if (!string.IsNullOrEmpty(retStr))
            {
                return(ReturnError(retStr));
            }

            ContactOK contactOK = IsContactOK();

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

            ClimateSite climateSiteToUpdate = GetClimateSiteWithClimateSiteIDDB(climateSiteModel.ClimateSiteID);

            if (climateSiteToUpdate == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_ToUpdate, ServiceRes.ClimateSite)));
            }

            retStr = FillClimateSite(climateSiteToUpdate, climateSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                retStr = DoUpdateChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                LogModel logModel = _LogService.PostAddLogForObj("ClimateSites", climateSiteToUpdate.ClimateSiteID, LogCommandEnum.Change, climateSiteToUpdate);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                foreach (LanguageEnum Lang in LanguageListAllowable)
                {
                    if (Lang == LanguageRequest)
                    {
                        TVItemLanguageModel tvItemLanguageModelToUpdate = _TVItemService._TVItemLanguageService.GetTVItemLanguageModelWithTVItemIDAndLanguageDB(climateSiteToUpdate.ClimateSiteTVItemID, Lang);
                        if (!string.IsNullOrWhiteSpace(tvItemLanguageModelToUpdate.Error))
                        {
                            return(ReturnError(tvItemLanguageModelToUpdate.Error));
                        }

                        tvItemLanguageModelToUpdate.TVText = CreateTVText(climateSiteModel);
                        if (string.IsNullOrWhiteSpace(tvItemLanguageModelToUpdate.TVText))
                        {
                            return(ReturnError(string.Format(ServiceRes._IsRequired, ServiceRes.TVText)));
                        }

                        TVItemLanguageModel tvItemLanguageModel = _TVItemService._TVItemLanguageService.PostUpdateTVItemLanguageDB(tvItemLanguageModelToUpdate);
                        if (!string.IsNullOrWhiteSpace(tvItemLanguageModel.Error))
                        {
                            return(ReturnError(tvItemLanguageModel.Error));
                        }
                    }
                }

                ts.Complete();
            }
            return(GetClimateSiteModelWithClimateSiteIDDB(climateSiteToUpdate.ClimateSiteID));
        }
Exemplo n.º 13
0
        private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType)
        {
            string           retStr           = "";
            Enums            enums            = new Enums(LanguageRequest);
            ClimateDataValue climateDataValue = validationContext.ObjectInstance as ClimateDataValue;

            climateDataValue.HasErrors = false;

            if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete)
            {
                if (climateDataValue.ClimateDataValueID == 0)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "ClimateDataValueID"), new[] { "ClimateDataValueID" }));
                }

                if (!(from c in db.ClimateDataValues select c).Where(c => c.ClimateDataValueID == climateDataValue.ClimateDataValueID).Any())
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "ClimateDataValue", "ClimateDataValueID", climateDataValue.ClimateDataValueID.ToString()), new[] { "ClimateDataValueID" }));
                }
            }

            ClimateSite ClimateSiteClimateSiteID = (from c in db.ClimateSites where c.ClimateSiteID == climateDataValue.ClimateSiteID select c).FirstOrDefault();

            if (ClimateSiteClimateSiteID == null)
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "ClimateSite", "ClimateSiteID", climateDataValue.ClimateSiteID.ToString()), new[] { "ClimateSiteID" }));
            }

            if (climateDataValue.DateTime_Local.Year == 1)
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "DateTime_Local"), new[] { "DateTime_Local" }));
            }
            else
            {
                if (climateDataValue.DateTime_Local.Year < 1980)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "DateTime_Local", "1980"), new[] { "DateTime_Local" }));
                }
            }

            retStr = enums.EnumTypeOK(typeof(StorageDataTypeEnum), (int?)climateDataValue.StorageDataType);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "StorageDataType"), new[] { "StorageDataType" }));
            }

            if (climateDataValue.Snow_cm != null)
            {
                if (climateDataValue.Snow_cm < 0 || climateDataValue.Snow_cm > 10000)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Snow_cm", "0", "10000"), new[] { "Snow_cm" }));
                }
            }

            if (climateDataValue.Rainfall_mm != null)
            {
                if (climateDataValue.Rainfall_mm < 0 || climateDataValue.Rainfall_mm > 10000)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "Rainfall_mm", "0", "10000"), new[] { "Rainfall_mm" }));
                }
            }

            if (climateDataValue.RainfallEntered_mm != null)
            {
                if (climateDataValue.RainfallEntered_mm < 0 || climateDataValue.RainfallEntered_mm > 10000)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "RainfallEntered_mm", "0", "10000"), new[] { "RainfallEntered_mm" }));
                }
            }

            if (climateDataValue.TotalPrecip_mm_cm != null)
            {
                if (climateDataValue.TotalPrecip_mm_cm < 0 || climateDataValue.TotalPrecip_mm_cm > 10000)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "TotalPrecip_mm_cm", "0", "10000"), new[] { "TotalPrecip_mm_cm" }));
                }
            }

            if (climateDataValue.MaxTemp_C != null)
            {
                if (climateDataValue.MaxTemp_C < -50 || climateDataValue.MaxTemp_C > 50)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "MaxTemp_C", "-50", "50"), new[] { "MaxTemp_C" }));
                }
            }

            if (climateDataValue.MinTemp_C != null)
            {
                if (climateDataValue.MinTemp_C < -50 || climateDataValue.MinTemp_C > 50)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "MinTemp_C", "-50", "50"), new[] { "MinTemp_C" }));
                }
            }

            if (climateDataValue.HeatDegDays_C != null)
            {
                if (climateDataValue.HeatDegDays_C < -1000 || climateDataValue.HeatDegDays_C > 100)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "HeatDegDays_C", "-1000", "100"), new[] { "HeatDegDays_C" }));
                }
            }

            if (climateDataValue.CoolDegDays_C != null)
            {
                if (climateDataValue.CoolDegDays_C < -1000 || climateDataValue.CoolDegDays_C > 100)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "CoolDegDays_C", "-1000", "100"), new[] { "CoolDegDays_C" }));
                }
            }

            if (climateDataValue.SnowOnGround_cm != null)
            {
                if (climateDataValue.SnowOnGround_cm < 0 || climateDataValue.SnowOnGround_cm > 10000)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SnowOnGround_cm", "0", "10000"), new[] { "SnowOnGround_cm" }));
                }
            }

            if (climateDataValue.DirMaxGust_0North != null)
            {
                if (climateDataValue.DirMaxGust_0North < 0 || climateDataValue.DirMaxGust_0North > 360)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DirMaxGust_0North", "0", "360"), new[] { "DirMaxGust_0North" }));
                }
            }

            if (climateDataValue.SpdMaxGust_kmh != null)
            {
                if (climateDataValue.SpdMaxGust_kmh < 0 || climateDataValue.SpdMaxGust_kmh > 300)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "SpdMaxGust_kmh", "0", "300"), new[] { "SpdMaxGust_kmh" }));
                }
            }

            //HourlyValues has no StringLength Attribute

            if (climateDataValue.LastUpdateDate_UTC.Year == 1)
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" }));
            }
            else
            {
                if (climateDataValue.LastUpdateDate_UTC.Year < 1980)
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), new[] { "LastUpdateDate_UTC" }));
                }
            }

            TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == climateDataValue.LastUpdateContactTVItemID select c).FirstOrDefault();

            if (TVItemLastUpdateContactTVItemID == null)
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", climateDataValue.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" }));
            }
            else
            {
                List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>()
                {
                    TVTypeEnum.Contact,
                };
                if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType))
                {
                    climateDataValue.HasErrors = true;
                    yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), new[] { "LastUpdateContactTVItemID" }));
                }
            }

            retStr = "";      // added to stop compiling CSSPError
            if (retStr != "") // will never be true
            {
                climateDataValue.HasErrors = true;
                yield return(new ValidationResult("AAA", new[] { "AAA" }));
            }
        }
        public void ClimateSite_Controller_GetClimateSiteList_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    ClimateSiteController climateSiteController = new ClimateSiteController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(climateSiteController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, climateSiteController.DatabaseType);

                    ClimateSite climateSiteFirst = new ClimateSite();
                    int         count            = -1;
                    Query       query            = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        ClimateSiteService climateSiteService = new ClimateSiteService(query, db, ContactID);
                        climateSiteFirst = (from c in db.ClimateSites select c).FirstOrDefault();
                        count            = (from c in db.ClimateSites select c).Count();
                        count            = (query.Take > count ? count : query.Take);
                    }

                    // ok with ClimateSite info
                    IHttpActionResult jsonRet = climateSiteController.GetClimateSiteList();
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <List <ClimateSite> > ret = jsonRet as OkNegotiatedContentResult <List <ClimateSite> >;
                    Assert.AreEqual(climateSiteFirst.ClimateSiteID, ret.Content[0].ClimateSiteID);
                    Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count);

                    List <ClimateSite> climateSiteList = new List <ClimateSite>();
                    count = -1;
                    query = new Query();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                    {
                        ClimateSiteService climateSiteService = new ClimateSiteService(query, db, ContactID);
                        climateSiteList = (from c in db.ClimateSites select c).OrderBy(c => c.ClimateSiteID).Skip(0).Take(2).ToList();
                        count           = (from c in db.ClimateSites select c).Count();
                    }

                    if (count > 0)
                    {
                        query.Skip = 0;
                        query.Take = 5;
                        count      = (query.Take > count ? query.Take : count);

                        // ok with ClimateSite info
                        jsonRet = climateSiteController.GetClimateSiteList(query.Language.ToString(), query.Skip, query.Take);
                        Assert.IsNotNull(jsonRet);

                        ret = jsonRet as OkNegotiatedContentResult <List <ClimateSite> >;
                        Assert.AreEqual(climateSiteList[0].ClimateSiteID, ret.Content[0].ClimateSiteID);
                        Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count);

                        if (count > 1)
                        {
                            query.Skip = 1;
                            query.Take = 5;
                            count      = (query.Take > count ? query.Take : count);

                            // ok with ClimateSite info
                            IHttpActionResult jsonRet2 = climateSiteController.GetClimateSiteList(query.Language.ToString(), query.Skip, query.Take);
                            Assert.IsNotNull(jsonRet2);

                            OkNegotiatedContentResult <List <ClimateSite> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <ClimateSite> >;
                            Assert.AreEqual(climateSiteList[1].ClimateSiteID, ret2.Content[0].ClimateSiteID);
                            Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count);
                        }
                    }
                }
            }
        }
        public void ClimateSite_Controller_Post_Test()
        {
            foreach (LanguageEnum LanguageRequest in AllowableLanguages)
            {
                foreach (int ContactID in new List <int>()
                {
                    AdminContactID
                })                                                             //, TestEmailValidatedContactID, TestEmailNotValidatedContactID })
                {
                    ClimateSiteController climateSiteController = new ClimateSiteController(DatabaseTypeEnum.SqlServerTestDB);
                    Assert.IsNotNull(climateSiteController);
                    Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, climateSiteController.DatabaseType);

                    ClimateSite climateSiteLast = new ClimateSite();
                    using (CSSPDBContext db = new CSSPDBContext(DatabaseType))
                    {
                        Query query = new Query();
                        query.Language = LanguageRequest;
                        query.Asc      = "";
                        query.Desc     = "";

                        ClimateSiteService climateSiteService = new ClimateSiteService(query, db, ContactID);
                        climateSiteLast = (from c in db.ClimateSites select c).FirstOrDefault();
                    }

                    // ok with ClimateSite info
                    IHttpActionResult jsonRet = climateSiteController.GetClimateSiteWithID(climateSiteLast.ClimateSiteID);
                    Assert.IsNotNull(jsonRet);

                    OkNegotiatedContentResult <ClimateSite> Ret = jsonRet as OkNegotiatedContentResult <ClimateSite>;
                    ClimateSite climateSiteRet = Ret.Content;
                    Assert.AreEqual(climateSiteLast.ClimateSiteID, climateSiteRet.ClimateSiteID);

                    BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest);

                    // Post to return CSSPError because ClimateSiteID exist
                    IHttpActionResult jsonRet2 = climateSiteController.Post(climateSiteRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet2);

                    OkNegotiatedContentResult <ClimateSite> climateSiteRet2 = jsonRet2 as OkNegotiatedContentResult <ClimateSite>;
                    Assert.IsNull(climateSiteRet2);

                    BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult;
                    Assert.IsNotNull(badRequest2);

                    // Post to return newly added ClimateSite
                    climateSiteRet.ClimateSiteID             = 0;
                    climateSiteController.Request            = new System.Net.Http.HttpRequestMessage();
                    climateSiteController.Request.RequestUri = new System.Uri("http://localhost:5000/api/climateSite");
                    IHttpActionResult jsonRet3 = climateSiteController.Post(climateSiteRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet3);

                    CreatedNegotiatedContentResult <ClimateSite> climateSiteRet3 = jsonRet3 as CreatedNegotiatedContentResult <ClimateSite>;
                    Assert.IsNotNull(climateSiteRet3);

                    BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest3);

                    IHttpActionResult jsonRet4 = climateSiteController.Delete(climateSiteRet, LanguageRequest.ToString());
                    Assert.IsNotNull(jsonRet4);

                    OkNegotiatedContentResult <ClimateSite> climateSiteRet4 = jsonRet4 as OkNegotiatedContentResult <ClimateSite>;
                    Assert.IsNotNull(climateSiteRet4);

                    BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult;
                    Assert.IsNull(badRequest4);
                }
            }
        }
 public ClimateSiteTest()
 {
     climateSite       = new ClimateSite();
     climateSiteExtraA = new ClimateSiteExtraA();
     climateSiteExtraB = new ClimateSiteExtraB();
 }