public IHttpActionResult GetTransect(int id)
        {
            Transect transect = db.Transects.Find(id);

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

            return(Ok(transect));
        }
Example #2
0
        public ActionResult Upload(string theTransectName, string StartStation, string EndStation)
        {
            for (int i = 0; i < Request.Files.Count; i++)
            {
                var file = Request.Files[i];

                if (file != null)
                {
                    string ImageName    = System.IO.Path.GetFileName(file.FileName);
                    string physicalPath = Server.MapPath("~/Images/" + ImageName);

                    // save image in folder
                    file.SaveAs(physicalPath);

                    //get the image data
                    //byte[] imageData = null;
                    ////using (var binaryReader = new BinaryReader(file.InputStream))
                    ////{
                    ////    imageData = binaryReader.ReadBytes(file.ContentLength);
                    ////}

                    Transect TargetTransect = null;
                    foreach (Transect thisT in db.Transects)
                    {
                        if (thisT.TransectName.Trim() == theTransectName.Trim())
                        {
                            TargetTransect = thisT;
                            break;
                        }
                    }

                    if (TargetTransect != null)
                    {
                        //save new record in database
                        TransectImage newRecord = new TransectImage();
                        newRecord.TransectImageName = ImageName;
                        newRecord.TransectImageAlt  = ImageName;
                        newRecord.ImagePath         = "~/Images/" + ImageName;
                        newRecord.ContentType       = "ResistivityImage";
                        newRecord.StartStation      = Convert.ToDouble(StartStation);
                        newRecord.EndStation        = Convert.ToDouble(EndStation);
                        newRecord.Type       = "ResistivityImage";
                        newRecord.TransectID = Convert.ToInt32(TargetTransect.TransectId);
                        db.TransectImages.Add(newRecord);
                        db.SaveChanges();
                    }
                }
            }

            ////Display records
            return(null);
        }
        public IHttpActionResult DeleteTransect(int id)
        {
            Transect transect = db.Transects.Find(id);

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

            db.Transects.Remove(transect);
            db.SaveChanges();

            return(Ok(transect));
        }
Example #4
0
        public void WriteCSVFile()
        {
            String seperator = Request["seperator"].Trim();
            String header    = "Date,Survey,Trawl,Start Lat,Start Long, End Lat, End Long,";

            foreach (String s in species.Keys)
            {
                header += CSVString(s) + ",";
            }
            header = header.Replace(",", seperator);
            Response.Write(header + "\r\n");

            foreach (int key in transects.Keys)
            {
                Transect tr = transects[key];

                Response.Write(CSVString(tr.Date) + seperator);
                // Response.Write(CSVString(tr.StartTime) + seperator);
                // Response.Write(CSVString(tr.EndTime) + seperator);
                Response.Write(CSVString(tr.Cruise) + seperator);
                Response.Write(CSVString(tr.transect) + seperator);
                Response.Write(CSVString(tr.StartLat) + seperator);
                Response.Write(CSVString(tr.StartLong) + seperator);
                Response.Write(CSVString(tr.EndLat) + seperator);
                Response.Write(CSVString(tr.EndLong) + seperator);

                foreach (String sp in species.Keys)
                {
                    int speciesID = species[sp];
                    if (tr.counts.ContainsKey(speciesID))
                    {
                        TCount tc = tr.counts[speciesID];
                        Response.Write(tc.flying + seperator);
                    }
                    else
                    {
                        Response.Write(seperator);
                    }
                }


                Response.Write("\r\n");
            }



            /*
             * foreach (DateTime date in master.Keys)
             * {
             *  SpeciesRecords recs = master[date];
             *  foreach (SpeciesRepItem item in recs.records)
             *  {
             *      Response.Write(date.ToString("yyyy-MM-dd") + seperator);
             *      Response.Write(date.ToString("HH:mm:ss") + seperator);
             *
             *      Response.Write(CSVString(item.Taxonomic_Genus) + seperator);
             *      Response.Write(CSVString(item.Taxonomic_Species) + seperator);
             *
             *      Response.Write(CSVString(item.English_Genus) + seperator);
             *      Response.Write(CSVString(item.English_Species) + seperator);
             *
             *      Response.Write(CSVString(item.Taxon_order) + seperator);
             *      Response.Write(CSVString(item.Taxon_family) + seperator);
             *      Response.Write(CSVString(item.Taxon_group) + seperator);
             *      Response.Write(CSVString(item.Continent) + seperator);
             *      Response.Write(CSVString(item.Region) + seperator);
             *
             *      Response.Write(CSVString(item.flying.ToString()) + seperator);
             *      Response.Write(CSVString(item.sitting.ToString()) + seperator);
             *      Response.Write(CSVString(item.observer1) + seperator);
             *      Response.Write(CSVString(item.observer2) + seperator);
             *      Response.Write(CSVString(item.vessel) + seperator);
             *      Response.Write(CSVString(item.cruise) + seperator);
             *      Response.Write(CSVString(item.transect) + seperator);
             *      Response.Write(item.startLat.ToString() + seperator);
             *      Response.Write(item.startLng.ToString() + seperator);
             *      Response.Write(CSVString(item.endLat) + seperator);
             *      Response.Write(CSVString(item.endLng) + seperator);
             *      Response.Write(CSVString(item.CountType) + seperator);
             *      Response.Write(CSVString(item.WindDirection) + seperator);
             *      Response.Write(CSVString(item.WindDirection_deg) + seperator);
             *      Response.Write(CSVString(item.WindStrength_kmph) + seperator);
             *      Response.Write(CSVString(item.CloudCover) + seperator);
             *      Response.Write(CSVString(item.Visibility_m) + seperator);
             *      Response.Write(CSVString(item.Precipitation) + seperator);
             *      Response.Write(CSVString(item.CountingShipFollowers) + seperator);
             *      Response.Write(CSVString(item.SwellHeight_m) + seperator);
             *      Response.Write(CSVString(item.CoordinateSystem) + seperator);
             *      Response.Write(CSVString(item.CountArea) + seperator);
             *      Response.Write(CSVString(item.ArcFromBow) + seperator);
             *      Response.Write(CSVString(item.PositionOnVessel) + seperator);
             *
             *
             *
             *
             *      Response.Write("\r\n");
             *
             *  }
             * }
             */
        }
Example #5
0
        SpeciesRecords LoadRecords(String query, List <int> filteredSpecies)
        {
            int            prevTransect      = -1;
            bool           speciesInTransect = true;
            SpeciesRepItem prevItem          = null;


            SpeciesRecords records = new SpeciesRecords();

            using (SqlConnection connection = new SqlConnection(DataSources.dbConSpecies))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    using (SqlDataReader set = command.ExecuteReader())
                    {
                        while (set.Read())
                        {
                            int      fStationID = (int)set["fStationID"];
                            DateTime date       = (DateTime)set["fStartDate"];
                            DateTime time1      = new DateTime(2010, 1, 1, 12, 0, 0);
                            DateTime time2      = new DateTime(2010, 1, 1, 12, 0, 0);

                            if (transects.ContainsKey(fStationID) == false)
                            {
                                Transect tr = new Transect();
                                tr.Date      = String.Format("{0}-{1}-{2}", date.Year, date.Month.ToString("D2"), date.Day.ToString("D2"));
                                tr.StartTime = String.Format("{0}:{1}:{2}", time1.Hour.ToString("D2"), time1.Minute.ToString("D2"), time1.Second.ToString("D2"));
                                tr.EndTime   = String.Format("{0}:{1}:{2}", time2.Hour.ToString("D2"), time2.Minute.ToString("D2"), time2.Second.ToString("D2"));
                                tr.StartLat  = set["fStartLat"].ToString();
                                tr.StartLong = set["fStartLng"].ToString();
                                tr.EndLat    = set["fEndLat"].ToString();
                                tr.EndLong   = set["fEndLng"].ToString();

                                tr.Cruise   = set["fSurveyLabel"].ToString();
                                tr.transect = set["fLevel3Name"].ToString();


                                transects[fStationID] = tr;
                            }

                            Transect trans = transects[fStationID];

                            int speciesID = (int)set["fSpeciesID"];
                            if (filteredSpecies == null || filteredSpecies.Contains(speciesID))
                            {
                                String speciesName = set["fCommonName"].ToString();

                                species[speciesName] = speciesID;

                                if (trans.counts.ContainsKey(speciesID) == false)
                                {
                                    trans.counts[speciesID] = new TCount();
                                }
                                TCount tc = trans.counts[speciesID];

                                if (set["fOccurance"] != DBNull.Value)
                                {
                                    int flying = (int)set["fOccurance"];
                                    if (tc.flying == "")
                                    {
                                        tc.flying = "0";
                                    }
                                    tc.flying = (int.Parse(tc.flying) + flying).ToString();
                                }
                            }



                            if (prevTransect != fStationID)
                            {
                                if (speciesInTransect == false)
                                {
                                    if (filteredSpecies != null && prevItem != null)
                                    {
                                        // add null species record
                                        prevItem.commonName = "None observed";
                                        prevItem.scientName = "None observed";
                                        prevItem.flying     = 0;
                                        prevItem.sitting    = 0;
                                        records.records.Add(prevItem);
                                    }
                                }

                                prevTransect      = fStationID;
                                speciesInTransect = false;
                            }



                            SpeciesRepItem item = new SpeciesRepItem();
                            item.species    = (int)set["fSpeciesID"];
                            item.commonName = set["fCommonName"].ToString();
                            item.scientName = set["fSpeciesName"].ToString();

                            item.flying = (int)set["fOccurance"];

                            DateTime time = new DateTime(2010, 1, 1, 12, 0, 0);
                            item.date = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);

                            item.startLat     = (double)set["fStartLat"];
                            item.startLng     = (double)set["fStartLng"];
                            item.endLat       = set["fEndLat"].ToString();
                            item.endLng       = set["fEndLng"].ToString();
                            item.LatitudeEnd  = set["fEndLat"].ToString();
                            item.LongitudeEnd = set["fEndLng"].ToString();


                            if (filteredSpecies == null || filteredSpecies.Contains(item.species))
                            {
                                speciesInTransect = true;
                                records.records.Add(item);
                            }

                            prevItem = item;
                        }
                    }
                }
            }

            if (speciesInTransect == false)
            {
                if (filteredSpecies != null && prevItem != null)
                {
                    // add null species record
                    prevItem.commonName = "None observed";
                    prevItem.scientName = "None observed";
                    prevItem.flying     = 0;
                    prevItem.sitting    = 0;
                    records.records.Add(prevItem);
                }
            }


            return(records);
        }
        public IHttpActionResult PutTransect(int id, string TransectRef = null, int CruiseID = 0, string TransectNo = null, string Date = null, string TimeStart = null, string TimeEnd = null, int Observer1ID = 0, int Observer2ID = 0, string CountType = null, string WindDirection = null, double WindDirection_deg = -1000, string WindStrength_kmph = null, string CloudCover = null, string Visibility_m = null, string Precipitation = null, string CountingShipFollowers = null, double SwellHeight_m = -1000, string CoordinateSystem = null, double LatitudeStart = -1000, double LongitudeStart = -1000, double LatitudeEnd = -1000, double LongitudeEnd = -1000, int CountArea = 0, int ArcFromBow = 0, string PositionOnVessel = null)
        {
            Transect transect = db.Transects.Find(id);

            if (transect == null)
            {
                return(NotFound());
            }
            transect.TransectRef = TransectRef != null ? TransectRef : transect.TransectRef;
            transect.CruiseID    = CruiseID != 0 ? CruiseID : transect.CruiseID;
            transect.TransectNo  = TransectNo != null ? TransectNo : transect.TransectNo;
            transect.Date        = Date != null?DateTime.Parse(Date) : transect.Date;

            transect.TimeStart = TimeStart != null?DateTime.Parse(TimeStart) : transect.TimeStart;

            transect.TimeEnd = TimeEnd != null?DateTime.Parse(TimeEnd) : transect.TimeEnd;

            transect.Observer1ID           = Observer1ID != 0 ? Observer1ID : transect.Observer1ID;
            transect.Observer2ID           = Observer2ID != 0 ? Observer2ID : transect.Observer2ID;
            transect.CountType             = CountType != null ? CountType : transect.CountType;
            transect.WindDirection         = WindDirection != null ? WindDirection : transect.WindDirection;
            transect.WindDirection_deg     = WindDirection_deg != -1000 ? WindDirection_deg : transect.WindDirection_deg;
            transect.WindStrength_kmph     = WindStrength_kmph != null ? WindStrength_kmph : transect.WindStrength_kmph;
            transect.CloudCover            = CloudCover != null ? CloudCover : transect.CloudCover;
            transect.Visibility_m          = Visibility_m != null ? Visibility_m : transect.Visibility_m;
            transect.Precipitation         = Precipitation != null ? Precipitation : transect.Precipitation;
            transect.CountingShipFollowers = CountingShipFollowers != null ? CountingShipFollowers : transect.CountingShipFollowers;
            transect.SwellHeight_m         = SwellHeight_m != -1000 ? SwellHeight_m : transect.SwellHeight_m;
            transect.CoordinateSystem      = CoordinateSystem != null ? CoordinateSystem : transect.CoordinateSystem;
            transect.LatitudeStart         = LatitudeStart != -1000 ? LatitudeStart : transect.LatitudeStart;
            transect.LongitudeStart        = LongitudeStart != -1000 ? LongitudeStart : transect.LongitudeStart;
            transect.LatitudeEnd           = LatitudeEnd != -1000 ? LatitudeEnd : transect.LatitudeEnd;
            transect.LongitudeEnd          = LongitudeEnd != -1000 ? LongitudeEnd : transect.LongitudeEnd;
            transect.CountArea             = CountArea != -1000 ? CountArea : transect.CountArea;
            transect.ArcFromBow            = ArcFromBow != -1000 ? ArcFromBow : transect.ArcFromBow;
            transect.PositionOnVessel      = PositionOnVessel != null ? PositionOnVessel : transect.PositionOnVessel;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != transect.TransectID)
            {
                return(BadRequest());
            }

            db.Entry(transect).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TransectExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(transect));
        }
        public IHttpActionResult PostTransect(string TransectRef, int CruiseID, string TransectNo, string Date, string TimeStart, string TimeEnd, string CountType, string WindDirection, double WindDirection_deg, string WindStrength_kmph, string CloudCover, string Visibility_m, string Precipitation, double SwellHeight_m, double LatitudeStart, double LongitudeStart, double LatitudeEnd, double LongitudeEnd, int CountArea, int ArcFromBow, string PositionOnVessel, int Observer1ID, int Observer2ID = 0, string CoordinateSystem = null, string CountingShipFollowers = null)
        {
            Transect transect = new Transect();

            transect.TransectRef  = TransectRef;
            transect.CruiseID     = CruiseID;
            transect.TransectNo   = TransectNo;
            transect.DataSourceID = 2;

            transect.Date                  = DateTime.Parse(Date);
            transect.TimeStart             = DateTime.Parse(TimeStart);
            transect.TimeEnd               = DateTime.Parse(TimeEnd);
            transect.Observer1ID           = Observer1ID;
            transect.Observer2ID           = Observer2ID;
            transect.CountType             = CountType;
            transect.WindDirection         = WindDirection;
            transect.WindDirection_deg     = WindDirection_deg;
            transect.WindStrength_kmph     = WindStrength_kmph;
            transect.CloudCover            = CloudCover;
            transect.Visibility_m          = Visibility_m;
            transect.Precipitation         = Precipitation;
            transect.CountingShipFollowers = CountingShipFollowers;
            transect.SwellHeight_m         = SwellHeight_m;
            transect.CoordinateSystem      = CoordinateSystem;
            transect.LatitudeStart         = LatitudeStart;
            transect.LongitudeStart        = LongitudeStart;
            transect.LatitudeEnd           = LatitudeEnd;
            transect.LongitudeEnd          = LongitudeEnd;
            transect.CountArea             = CountArea;
            transect.ArcFromBow            = ArcFromBow;
            transect.PositionOnVessel      = PositionOnVessel;
            transect.InsertTimeStamp       = DateTime.Now;

            if (transect.Observer2ID == 0)
            {
                transect.Observer2ID = null;
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Transects.Add(transect);

            try
            {
                // Your code...
                // Could also be before try if you know the exception occurs in SaveChanges

                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
            return(CreatedAtRoute("DefaultApi", new { id = transect.TransectID }, transect));
        }