/// <summary>
        /// Save a Greenhouse
        /// </summary>
        /// <param name="dc"></param>
        /// <param name="greenhouse"></param>
        /// <returns>returns the id of the saved greenhouse</returns>
        public int Save(DataContext dc, Domain.Greenhouse greenhouse)
        {
            dc = dc ?? Conn.GetContext();
            var dbGreenhouse = dc.Greenhouses.Where(g => g.GreenhouseID == greenhouse.ID).SingleOrDefault();
            var isNew        = false;

            if (dbGreenhouse == null)
            {
                dbGreenhouse = new DataAccess.SqlRepository.Greenhouse();
                isNew        = true;
            }

            dbGreenhouse.City            = greenhouse.Address.City;
            dbGreenhouse.Country         = greenhouse.Address.Country;
            dbGreenhouse.StateOrProvince = greenhouse.Address.StateOrProvince;
            dbGreenhouse.Zip             = greenhouse.Address.Zip;
            dbGreenhouse.StreetLine1     = greenhouse.Address.StreetLine1;
            dbGreenhouse.StreetLine2     = greenhouse.Address.StreetLine2;
            dbGreenhouse.IsDefault       = greenhouse.Address.IsDefault;
            dbGreenhouse.DateUpdated     = DateTime.Now;

            if (isNew)
            {
                dbGreenhouse.DateCreated = DateTime.Now;
                dc.Greenhouses.InsertOnSubmit(dbGreenhouse);
            }
            dc.SubmitChanges();

            greenhouse.ID = dbGreenhouse.GreenhouseID;

            if (greenhouse.Sections != null)
            {
                foreach (Section section in greenhouse.Sections)
                {
                    section.Save();
                }
            }

            return(greenhouse.ID);
        }
        /// <summary>
        /// Save a Greenhouse
        /// </summary>
        /// <param name="dc"></param>
        /// <param name="greenhouse"></param>
        /// <returns>returns the id of the saved greenhouse</returns>
        public int Save(DataContext dc, Domain.Greenhouse greenhouse)
        {
            dc = dc ?? Conn.GetContext();
            var dbGreenhouse = dc.Greenhouses.Where(g => g.GreenhouseID == greenhouse.ID).SingleOrDefault();
            var isNew = false;
            if (dbGreenhouse == null)
            {
                dbGreenhouse = new DataAccess.SqlRepository.Greenhouse();
                isNew = true;
            }

            dbGreenhouse.City = greenhouse.Address.City;
            dbGreenhouse.Country = greenhouse.Address.Country;
            dbGreenhouse.StateOrProvince = greenhouse.Address.StateOrProvince;
            dbGreenhouse.Zip = greenhouse.Address.Zip;
            dbGreenhouse.StreetLine1 = greenhouse.Address.StreetLine1;
            dbGreenhouse.StreetLine2 = greenhouse.Address.StreetLine2;
            dbGreenhouse.IsDefault = greenhouse.Address.IsDefault;
            dbGreenhouse.DateUpdated = DateTime.Now;

            if (isNew)
            {
                dbGreenhouse.DateCreated = DateTime.Now;
                dc.Greenhouses.InsertOnSubmit(dbGreenhouse);
            }
            dc.SubmitChanges();

            greenhouse.ID = dbGreenhouse.GreenhouseID;

            if (greenhouse.Sections != null)
                foreach (Section section in greenhouse.Sections)
                {
                    section.Save();
                }

            return greenhouse.ID;
        }