private int AddMaterial(int siteVisitId, int taxonId)
        {
            var sparcService = new MaterialService(User);

            var sMaterialName = Get("Material.Material name");
            var sAccessionNumber = Get("Material.Accession number");
            var sRegistrationNumber = Get("Material.Registration number");
            var sCollectorNumber = Get("Material.Collector number");
            var sIDBy = Get("Material.Identified by");
            var sIDOn = Get("Material.Identified on");

            if (!string.IsNullOrWhiteSpace(sIDOn)) {
                string message;
                if (DateUtils.IsValidBLDate(sIDOn, out message)) {
                    sIDOn = string.Format("{0:dd MMM yyyy}", DateUtils.MakeCompatibleBLDate(Int32.Parse(sIDOn)));
                } else {
                    if (!Information.IsDate(sIDOn)) {
                        throw new Exception("'Identified on' value (" + sIDOn + ") is not a valid date time! " + message);
                    }
                }
            }

            var sIDRef = Get("Material.Identification reference");
            var sIDRefPage = Get("Material.Identification reference page");
            var sIDMethod = Get("Material.Identification method");
            var sIDAccuracy = Get("Material.Identification accuracy");
            var sIDNameQualifier = Get("Material.Name qualifier");
            var sIDNotes = Get("Material.Identification notes");
            var sInstitution = Get("Material.Institute");
            var sCollectMethod = Get("Material.Collection method");
            var sAbundance = Get("Material.Abundance");
            var sMacroHabitat = Get("Material.Macrohabitat");
            var sMicrohabitat = Get("Material.Microhabitat");
            var sSource = Get("Material.Source");
            var sSpecialLabel = Get("Material.Special label");

            var bCreateLabel = GetConvert<bool>("Material.Create Label", false);
            var sDateStart = Get("SiteVisit.Start Date", "0");

            string sOriginalLabel = "";

            if (bCreateLabel) {
                if (sDateStart != "0") {
                    string message;
                    if (DateUtils.IsValidBLDate(sDateStart, out message)) {
                        sDateStart = BuildDate(sDateStart);
                    }
                }
                sOriginalLabel = "Import derived: " + Get("Site.Locality") + "; " + Get("SiteVisit.Collector(s)") + "; " + sDateStart;
            } else {
                sOriginalLabel = Get("Material.Original label");
            }

            if (string.IsNullOrWhiteSpace(sMaterialName)) {
                if (!string.IsNullOrWhiteSpace(sInstitution)) {
                    if (!string.IsNullOrWhiteSpace(sAccessionNumber)) {
                        sMaterialName = string.Format("{0}:{1}", sInstitution, sAccessionNumber);
                    } else {
                        if (!string.IsNullOrWhiteSpace(sRegistrationNumber)) {
                            sMaterialName = string.Format("{0}:{1}", sInstitution, sRegistrationNumber);
                        }
                    }
                } else {
                    if (!string.IsNullOrWhiteSpace(sAccessionNumber)) {
                        sMaterialName = sAccessionNumber;
                    } else {
                        if (!string.IsNullOrWhiteSpace(sRegistrationNumber)) {
                            sMaterialName = sRegistrationNumber;
                        }
                    }
                }
            }
            var material = new Material {
                MaterialName = sMaterialName,
                SiteVisitID = siteVisitId,
                AccessionNumber = sAccessionNumber,
                RegistrationNumber = sRegistrationNumber,
                CollectorNumber = sCollectorNumber,
                BiotaID = taxonId,
                IdentifiedBy = sIDBy,
                IdentificationDate = (string.IsNullOrWhiteSpace(sIDOn) ? null : new DateTime?(DateAndTime.DateValue(sIDOn))),
                IdentificationReferenceID = (!string.IsNullOrWhiteSpace(sIDRef) && sIDRef.IsNumeric()) ? Int32.Parse(sIDRef) : 0,
                IdentificationRefPage = sIDRefPage,
                IdentificationMethod = sIDMethod,
                IdentificationAccuracy = sIDAccuracy,
                IdentificationNameQualification = sIDNameQualifier,
                IdentificationNotes = sIDNotes,
                Institution = sInstitution,
                CollectionMethod = sCollectMethod,
                Abundance = sAbundance,
                MacroHabitat = sMacroHabitat,
                MicroHabitat = sMicrohabitat,
                Source = sSource,
                SpecialLabel = sSpecialLabel,
                OriginalLabel = sOriginalLabel
            };

            return Service.ImportMaterial(material);
        }
Beispiel #2
0
 public void UpdateMaterial(Material material)
 {
     StoredProcUpdate("spMaterialUpdate",
         _P("intMaterialID", material.MaterialID),
         _P("vchrMaterialName", material.MaterialName),
         _P("intSiteVisitID", material.SiteVisitID),
         _P("vchrAccessionNo", material.AccessionNumber),
         _P("vchrRegNo", material.RegistrationNumber),
         _P("vchrCollectorNo", material.CollectorNumber),
         _P("intBiotaID", material.BiotaID),
         _P("vchrIDBy", material.IdentifiedBy),
         _P("vchrIDDate", material.IdentificationDate),
         _P("intIDRefID", material.IdentificationReferenceID),
         _P("vchrIDRefPage", material.IdentificationRefPage),
         _P("vchrIDMethod", material.IdentificationMethod),
         _P("vchrIDAccuracy", material.IdentificationAccuracy),
         _P("vchrIDNameQual", material.IdentificationNameQualification),
         _P("vchrIDNotes", material.IdentificationNotes),
         _P("vchrInstitution", material.Institution),
         _P("vchrCollectionMethod", material.CollectionMethod),
         _P("vchrAbundance", material.Abundance),
         _P("vchrMacroHabitat", material.MacroHabitat),
         _P("vchrMicroHabitat", material.MicroHabitat),
         _P("vchrSource", material.Source),
         _P("intAssociateOf", material.AssociateOf),
         _P("intTrapID", material.TrapID),
         _P("vchrSpecialLabel", material.SpecialLabel),
         _P("vchrOriginalLabel", material.OriginalLabel)
     );
 }
Beispiel #3
0
 public static string FormatMaterialName(Material material)
 {
     return Format(Config.GetProfile<string>(PluginManager.Instance.User, "Material.MaterialNameFormat", DEFAULT_MATERIAL_NAME_FORMAT), material);
 }
Beispiel #4
0
        public string GetMaterialSummary(Material material)
        {
            string strHEADER = @"{\rtf1\ansi\deff0\deflang1033 {\fonttbl {\f0\fswiss\fcharset0 SYSTEM;}{\f1\froman\fcharset0 TIMES NEW ROMAN;}}";
            string strCOLOUR_TABLE = @"{\colortbl \red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255}";
            string strPRE_TEXT = @"\paperw11895 \margr0\margl0\ATXph0 \plain \fs20 \f1 ";

            var buf = new StringBuilder();

            buf.AppendFormat("{0}\n{1}\n{2}", strHEADER, strCOLOUR_TABLE, strPRE_TEXT);
            var site = GetSite(material.SiteID);

            buf.Append(@"\pard\fs24\b\ul Site \b0\ul0 ");

            buf.Append(FieldRTF(site.SiteName, "Name: ", 2));
            buf.Append(FieldRTF(site.PoliticalRegion, "Region: ", 2));
            buf.Append(FieldRTF(site.Locality, "Local: ", 2));
            buf.Append(FieldRTF(site.DistanceFromPlace, "Distance: ", 2));
            buf.Append(FieldRTF(site.DirFromPlace, "; Dir: ", 2, false));

            buf.Append(FieldRTF(site.InformalLocal, "Informal: ", 2));
            buf.Append(FieldRTF(site.PosX1, "Lat: ", 2));
            buf.Append(FieldRTF(site.PosY1, "Long: ", 2));
            buf.Append(FieldRTF(site.ElevUpper + " " + site.ElevUnits, "Elev. Upper: ", 1));
            buf.Append(FieldRTF(site.ElevLower + " " + site.ElevUnits, "Elev. Lower: ", 1));
            buf.Append(FieldRTF(site.ElevDepth + " " + site.ElevUnits, "Elev. Depth: ", 1));
            buf.Append(FieldRTF(site.WhoCreated + ", " + site.DateCreated, "Created: ", 1));
            buf.Append(FieldRTF(site.WhoLastUpdated + ", " + site.DateLastUpdated, "Last Updated: ", 1));

            var visit = GetSiteVisit(material.SiteVisitID);

            buf.Append(@"\pard\par\par\fs24\b\ul\cf0 Site Visit \b0\ul0 ");
            buf.Append(FieldRTF(visit.SiteVisitName, "Name: ", 2));
            buf.Append(FieldRTF(visit.Collector, "Collector: ", 1));
            buf.Append(FieldRTF(visit.DateStart, "Date Start: ", 1));
            buf.Append(FieldRTF(visit.DateEnd, "Date End: ", 1));
            buf.Append(FieldRTF(visit.CasualTime, "Casual Date: ", 1));
            buf.Append(FieldRTF(visit.WhoCreated + ", " + visit.DateCreated, "Created: ", 1));
            buf.Append(FieldRTF(visit.WhoLastUpdated + ", " + visit.DateLastUpdated, "Last Updated: ", 1));

            buf.Append(@"\pard\par }");

            return buf.ToString();
        }
Beispiel #5
0
 public int ImportMaterial(Material m)
 {
     var matService = new MaterialService(User);
     m.MaterialID = matService.InsertMaterial(m.SiteVisitID);
     matService.UpdateMaterial(m);
     return m.MaterialID;
 }