public static bool Delete(
            Guid guid,
            Guid deletedBy,
            DateTime deletedTime,
            string deletedFromIP)
        {
            OfferAvailability availability = new OfferAvailability(guid);
            DBOfferAvailability.AddHistory(
                Guid.NewGuid(),
                availability.Guid,
                availability.OfferGuid,
                availability.BeginUtc,
                availability.EndUtc,
                availability.RequiresOfferCode,
                availability.OfferCode,
                availability.MaxAllowedPerCustomer,
                availability.Created,
                availability.CreatedBy,
                availability.CreatedFromIP,
                availability.IsDeleted,
                Guid.Empty,
				Convert.ToDateTime("1/1/1753 12:00:00 AM"),
				string.Empty,
                availability.LastModified,
                availability.LastModifedBy,
                availability.LastModifedFromIP,
                DateTime.UtcNow);

            return DBOfferAvailability.Delete(
                guid,
                deletedBy,
                deletedTime,
                deletedFromIP);
        }
        private bool Update()
        {
			OfferAvailability availability = new OfferAvailability(this.guid);
			//log.Info($"offer availability update: BeginUtc ({availability.BeginUtc}), EndUtc ({availability.EndUtc}), Created ({availability.Created}), DeletedTime ({availability.DeletedTime}), LastModified ({availability.LastModified})");

			DBOfferAvailability.AddHistory(
				Guid.NewGuid(),
				availability.Guid,
				availability.OfferGuid,
				availability.BeginUtc,
				availability.EndUtc,
				availability.RequiresOfferCode,
				availability.OfferCode,
				availability.MaxAllowedPerCustomer,
				availability.Created,
				availability.CreatedBy,
				availability.CreatedFromIP,
				availability.IsDeleted,
				Guid.Empty,
                Convert.ToDateTime("1/1/1753 12:00:00 AM"),
				string.Empty,
                availability.LastModified,
                availability.LastModifedBy,
                availability.LastModifedFromIP,
                DateTime.UtcNow);

            return DBOfferAvailability.Update(
                this.guid,
                this.beginUTC,
                this.endUTC,
                this.requiresOfferCode,
                this.offerCode,
                this.maxAllowedPerCustomer,
                this.lastModified,
                this.lastModifedBy,
                this.lastModifedFromIP);

        }
        private bool Update()
        {
            OfferAvailability availability = new OfferAvailability(this.guid);

            DBOfferAvailability.AddHistory(
                Guid.NewGuid(),
                availability.Guid,
                availability.OfferGuid,
                availability.BeginUtc,
                availability.EndUtc,
                availability.RequiresOfferCode,
                availability.OfferCode,
                availability.MaxAllowedPerCustomer,
                availability.Created,
                availability.CreatedBy,
                availability.CreatedFromIP,
                availability.IsDeleted,
                availability.DeletedBy,
                availability.DeletedTime,
                availability.DeletedFromIP,
                availability.LastModified,
                availability.LastModifedBy,
                availability.LastModifedFromIP,
                DateTime.UtcNow);

            return(DBOfferAvailability.Update(
                       this.guid,
                       this.beginUTC,
                       this.endUTC,
                       this.requiresOfferCode,
                       this.offerCode,
                       this.maxAllowedPerCustomer,
                       this.lastModified,
                       this.lastModifedBy,
                       this.lastModifedFromIP));
        }