Esempio n. 1
0
        public static Model.UserSubscription FromDataModel(Core.Data.UserSubscription source, bool isVerboseMode)
        {
            if (source == null)
            {
                return(null);
            }

            var item = new Model.UserSubscription
            {
                ID         = source.Id,
                Title      = source.Title,
                CountryID  = source.CountryId,
                DistanceKM = source.DistanceKm,

                IsEnabled      = (bool)source.IsEnabled,
                Latitude       = source.Latitude,
                Longitude      = source.Longitude,
                NotifyComments = source.NotifyComments,
                NotifyEmergencyChargingRequests = source.NotifyEmergencyChargingRequests,
                NotifyGeneralChargingRequests   = source.NotifyGeneralChargingRequests,
                NotifyMedia               = source.NotifyMedia,
                NotifyPOIAdditions        = source.NotifyPoiadditions,
                NotifyPOIUpdates          = source.NotifyPoiupdates,
                NotifyPOIEdits            = source.NotifyPoiedits,
                NotificationFrequencyMins = source.NotificationFrequencyMins,
                DateCreated               = source.DateCreated,
                DateLastNotified          = source.DateLastNotified,
                UserID = source.UserId
            };

            if (source.FilterSettings != null)
            {
                item.FilterSettings = JsonConvert.DeserializeObject <UserSubscriptionFilter>(source.FilterSettings);
            }

            if (isVerboseMode)
            {
                item.Country = OCM.API.Common.Model.Extensions.Country.FromDataModel(source.Country);
            }

            return(item);
        }
Esempio n. 2
0
        public Model.UserSubscription UpdateUserSubscription(Model.UserSubscription subscription)
        {
            var dataModel = new OCM.Core.Data.OCMEntities();

            Core.Data.UserSubscription update = new Core.Data.UserSubscription();
            if (subscription.ID > 0)
            {
                //edit
                update = dataModel.UserSubscriptions.FirstOrDefault(u => u.ID == subscription.ID && u.UserID == subscription.UserID);
            }
            else
            {
                //new item
                update.User             = dataModel.Users.FirstOrDefault(u => u.ID == subscription.UserID);
                update.DateCreated      = DateTime.UtcNow;
                update.DateLastNotified = update.DateCreated;
            }
            if (update != null)
            {
                update.Title     = subscription.Title;
                update.IsEnabled = subscription.IsEnabled;
                if (subscription.CountryID != null)
                {
                    update.Country = dataModel.Countries.FirstOrDefault(c => c.ID == subscription.CountryID);
                }
                else
                {
                    update.Country   = null;
                    update.CountryID = null;
                }

                update.DistanceKM = subscription.DistanceKM;

                if (subscription.FilterSettings != null)
                {
                    update.FilterSettings = JsonConvert.SerializeObject(subscription.FilterSettings);
                }
                else
                {
                    update.FilterSettings = null;
                }

                update.Latitude  = subscription.Latitude;
                update.Longitude = subscription.Longitude;
                update.NotificationFrequencyMins       = subscription.NotificationFrequencyMins;
                update.NotifyComments                  = subscription.NotifyComments;
                update.NotifyEmergencyChargingRequests = subscription.NotifyEmergencyChargingRequests;
                update.NotifyGeneralChargingRequests   = subscription.NotifyGeneralChargingRequests;
                update.NotifyMedia        = subscription.NotifyMedia;
                update.NotifyPOIAdditions = subscription.NotifyPOIAdditions;
                update.NotifyPOIEdits     = subscription.NotifyPOIEdits;
                update.NotifyPOIUpdates   = subscription.NotifyPOIUpdates;
            }

            if (update.ID == 0)
            {
                dataModel.UserSubscriptions.Add(update);
            }
            dataModel.SaveChanges();

            return(OCM.API.Common.Model.Extensions.UserSubscription.FromDataModel(update, true));
        }