public async Task <IHttpActionResult> UpdateStationImage(UpdatePrimaryStationImageModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } bool validated = false; HttpRequestMessage request = ControllerContext.Request; // this seems to be same as request ValidateCredentials VC = new ValidateCredentials(); validated = VC.checkCreds(request); if (!validated) { return(Unauthorized()); } if (model.ID <= 0) { return(BadRequest()); } // Call service to perform update, then check result to return as content var updatePrimaryStationImageModel = await _service.UpdatedStationImage(model); if (updatePrimaryStationImageModel != null) { if (updatePrimaryStationImageModel.Updated) { return(Ok(updatePrimaryStationImageModel)); } else { return(BadRequest(updatePrimaryStationImageModel.ErrorMessage)); } } // Otherwise return(BadRequest()); } catch (Exception ex) { HandleErrors(ex, "StationImageController_UpdateStationImage", "", ""); return(InternalServerError(ex)); } }
public async Task <UpdatePrimaryStationImageModel> UpdatedStationImage(UpdatePrimaryStationImageModel model) { using (RiverWatchEntities _db = new RiverWatchEntities()) { var updatePrimaryStationImageModel = new UpdatePrimaryStationImageModel(); bool enforcePrimary = false; enforcePrimary = _db.StationImageTypes.Find(model.ImageTypeID).EnforcePrimary; var stationImages = _db.StationImages .Where(si => si.StationID == model.StationID) .ToList <StationImage>(); if (stationImages.Count() == 0) { updatePrimaryStationImageModel = new UpdatePrimaryStationImageModel() { ID = model.ID, StationID = model.StationID, Primary = model.Primary, ImageTypeID = model.ImageTypeID, Description = model.Description, PhysHabYear = model.PhysHabYear, Updated = false, ErrorMessage = "No Station Images were found to update." }; } else { foreach (var stationImage in stationImages) { //the station image being updated if (stationImage.ID == model.ID) { if (!enforcePrimary) { stationImage.Primary = false; } else { stationImage.Primary = model.Primary; } stationImage.ImageType = model.ImageTypeID; stationImage.Description = model.Description; stationImage.ModifiedBy = model.ModifiedBy; stationImage.ModifiedDate = DateTime.Now; stationImage.PhysHabYear = model.PhysHabYear; } else if (model.Primary && enforcePrimary && (stationImage.ID != model.ID)) { stationImage.Primary = false; } await _db.SaveChangesAsync(); updatePrimaryStationImageModel = new UpdatePrimaryStationImageModel() { ID = model.ID, StationID = model.StationID, Primary = model.Primary, ImageTypeID = model.ImageTypeID, Description = model.Description, PhysHabYear = model.PhysHabYear, Updated = true, ErrorMessage = string.Empty }; } } return(updatePrimaryStationImageModel); } }