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));
            }
        }
Beispiel #2
0
        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);
            }
        }