private static ArgosPlatform GetPlatform(string platformId) { platformId = platformId.Normalize(); if (platformId.StartsWith("/a:", StringComparison.OrdinalIgnoreCase)) { platformId = platformId.Substring(3); } if (platformId.StartsWith("/argos:", StringComparison.OrdinalIgnoreCase)) { platformId = platformId.Substring(7); } if (platformId.StartsWith("/p:", StringComparison.OrdinalIgnoreCase)) { platformId = platformId.Substring(3); } if (platformId.StartsWith("/platform:", StringComparison.OrdinalIgnoreCase)) { platformId = platformId.Substring(10); } var database = new AnimalMovementDataContext(); return(database.ArgosPlatforms.FirstOrDefault(p => p.PlatformId == platformId)); }
private static CollarFile GetCollarFile(string fileId) { fileId = fileId.Normalize(); if (fileId.StartsWith("/f:", StringComparison.OrdinalIgnoreCase)) { fileId = fileId.Substring(3); } if (fileId.StartsWith("/file:", StringComparison.OrdinalIgnoreCase)) { fileId = fileId.Substring(6); } int id; if (!Int32.TryParse(fileId, out id) || id < 1) { return(null); } var database = new AnimalMovementDataContext(); return((from collar in database.CollarFiles where (collar.LookupCollarFileFormat.Code == 'H' || collar.LookupCollarFileFormat.ArgosData == 'Y') && collar.FileId == id select collar).FirstOrDefault()); }
/// <summary> /// Loads and logs the download data for an Argos Platform /// </summary> /// <param name="platform">The Argos PlatformId that this data is for</param> /// <param name="days">The number of days that are included in this data set</param> /// <param name="results">The data returned from the Argos Web Server (may be null)</param> /// <param name="errors">Any errors returned by the Argos Web Server (may be null)</param> /// <returns>Returns the newly created collar file, complete with database calculated fields</returns> /// <remarks>Only one of results and errors can be non-null.</remarks> internal static CollarFile LoadPlatfrom(ArgosPlatform platform, int days, ArgosWebSite.ArgosWebResult results, string errors) { //if results is null, then errors should be non-null (database rule, insert will fail if false) CollarFile file = null; var database = new AnimalMovementDataContext(); //Linq to SQL wraps the changes in a transaction so file will not be created if log cannot be written if (results != null) { file = new CollarFile { Owner = platform.ArgosProgram.Manager, FileName = "platform_" + platform.PlatformId + "_" + DateTime.Now.ToString("yyyyMMdd") + ".aws", Status = 'A', Contents = results.ToBytes() }; database.CollarFiles.InsertOnSubmit(file); } //Linq to SQL does not return the PK (timestamp) of the new ArgosDownload object, so don't use it in this data context var log = new ArgosDownload { PlatformId = platform.PlatformId, CollarFile = file, Days = days, ErrorMessage = errors }; database.ArgosDownloads.InsertOnSubmit(log); database.SubmitChanges(); //Linq TO SQL Insert with SPROC dos not set associations, and provides not partial methods to expand if (file != null) { file.LookupCollarFileFormat = database.LookupCollarFileFormats.First(l => l.Code == file.Format); } return(file); }
private void LoadDataContext() { Database = new AnimalMovementDataContext(); //Database.Log = Console.Out; }
private void LoadDataContext() { Database = new AnimalMovementDataContext(); //Database.Log = Console.Out; Investigator = Database.ProjectInvestigators.FirstOrDefault(pi => pi.Login == CurrentUser); }
private static ProjectInvestigator GetProjectInvestigator(string pi) { var database = new AnimalMovementDataContext(); return(database.ProjectInvestigators.FirstOrDefault(p => p.Login == pi)); }