示例#1
0
        public void Save(UserAgent userAgent)
        {
            using (var db = GetDbContext())
            {
                UserAgentEntity dbUserAgent = null;

                if (userAgent.Id != Guid.Empty)
                {
                    dbUserAgent = db.UserAgents
                                  .Include(ua => ua.OrderedProfiles)
                                  .SingleOrDefault(a => a.Id == userAgent.Id);
                }

                if (dbUserAgent == null)
                {
                    dbUserAgent = new UserAgentEntity()
                    {
                        Id        = Guid.NewGuid(),
                        CreatedBy = userAgent.CreatedBy,
                        CreatedOn = DateTime.UtcNow
                    };
                    userAgent.Id        = dbUserAgent.Id;
                    userAgent.CreatedOn = dbUserAgent.CreatedOn;
                    db.UserAgents.Add(dbUserAgent);
                }

                if (dbUserAgent.OrderedProfiles != null)
                {
                    dbUserAgent.OrderedProfiles.Clear();
                }

                dbUserAgent.Ax                  = userAgent.Ax;
                dbUserAgent.Height              = userAgent.Height;
                dbUserAgent.Identifier          = userAgent.Identifier;
                dbUserAgent.Image               = userAgent.Image;
                dbUserAgent.Name                = userAgent.Name;
                dbUserAgent.Width               = userAgent.Width;
                dbUserAgent.MatchType           = userAgent.MatchType;
                dbUserAgent.UpdatedBy           = userAgent.UpdatedBy;
                dbUserAgent.UpdatedOn           = DateTime.UtcNow;
                dbUserAgent.Api                 = userAgent.Api;
                dbUserAgent.Lines               = userAgent.Lines;
                dbUserAgent.Inputs              = userAgent.Inputs;
                dbUserAgent.MaxInputDb          = userAgent.InputMaxDb;
                dbUserAgent.MinInputDb          = userAgent.InputMinDb;
                dbUserAgent.UserInterfaceLink   = userAgent.UserInterfaceLink;
                dbUserAgent.Comment             = userAgent.Comment;
                dbUserAgent.InputGainStep       = userAgent.InputGainStep;
                dbUserAgent.GpoNames            = userAgent.GpoNames;
                dbUserAgent.UserInterfaceIsOpen = userAgent.UserInterfaceIsOpen;
                dbUserAgent.UseScrollbars       = userAgent.UseScrollbars;

                userAgent.UpdatedOn = dbUserAgent.UpdatedOn;

                GetProfileEntitiesFromProfiles(db, dbUserAgent, userAgent.Profiles);
                GetDbCodecPresetsFromCodecPresets(db, dbUserAgent, userAgent.CodecPresets);

                db.SaveChanges();
            }
        }
示例#2
0
        private void GetProfileEntitiesFromProfiles(CcmDbContext db, UserAgentEntity userAgent, IEnumerable <Profile> profiles)
        {
            userAgent.OrderedProfiles = userAgent.OrderedProfiles ?? new Collection <UserAgentProfileOrderEntity>();
            userAgent.OrderedProfiles.Clear();

            int sortIndex = 0;

            foreach (Profile profile in profiles)
            {
                var dbProfile = db.Profiles.SingleOrDefault(p => p.Id == profile.Id);
                if (dbProfile == null)
                {
                    continue;
                }

                userAgent.OrderedProfiles.Add(new UserAgentProfileOrderEntity()
                {
                    Profile   = dbProfile,
                    UserAgent = userAgent,
                    SortIndex = sortIndex
                });

                sortIndex++;
            }
        }
示例#3
0
 private UserAgent MapToUserAgent(UserAgentEntity dbUserAgent)
 {
     return(new UserAgent()
     {
         Ax = dbUserAgent.Ax,
         UserInterfaceLink = dbUserAgent.UserInterfaceLink,
         Height = dbUserAgent.Height,
         Id = dbUserAgent.Id,
         Identifier = dbUserAgent.Identifier,
         Image = dbUserAgent.Image,
         Name = dbUserAgent.Name,
         Width = dbUserAgent.Width,
         MatchType = dbUserAgent.MatchType,
         CreatedBy = dbUserAgent.CreatedBy,
         CreatedOn = dbUserAgent.CreatedOn,
         UpdatedBy = dbUserAgent.UpdatedBy,
         UpdatedOn = dbUserAgent.UpdatedOn,
         Api = dbUserAgent.Api,
         Lines = dbUserAgent.Lines,
         Inputs = dbUserAgent.Inputs,
         InputMaxDb = dbUserAgent.MaxInputDb,
         InputMinDb = dbUserAgent.MinInputDb,
         Comment = dbUserAgent.Comment,
         InputGainStep = dbUserAgent.InputGainStep,
         GpoNames = dbUserAgent.GpoNames,
         UserInterfaceIsOpen = dbUserAgent.UserInterfaceIsOpen,
         UseScrollbars = dbUserAgent.UseScrollbars,
         Profiles = GetProfilesFromProfiles(dbUserAgent.OrderedProfiles),
         CodecPresets = dbUserAgent.CodecPresets.Select(MapToCodecPreset).ToList()
     });
 }
示例#4
0
        private void GetDbCodecPresetsFromCodecPresets(CcmDbContext db, UserAgentEntity userAgent, IEnumerable <CodecPreset> codecPresets)
        {
            userAgent.CodecPresets = userAgent.CodecPresets ?? new Collection <CodecPresetEntity>();
            userAgent.CodecPresets.Clear();

            foreach (var codecPreset in codecPresets)
            {
                var dbCodecPreset = db.CodecPresets.SingleOrDefault(c => c.Id == codecPreset.Id);
                if (dbCodecPreset == null)
                {
                    continue;
                }
                userAgent.CodecPresets.Add(dbCodecPreset);
            }
        }
示例#5
0
 private static UserAgent MapToUserAgent(UserAgentEntity userAgent)
 {
     return(userAgent == null ? null : new UserAgent()
     {
         Ax = userAgent.Ax,
         Height = userAgent.Height,
         Id = userAgent.Id,
         Identifier = userAgent.Identifier,
         Image = userAgent.Image,
         MatchType = userAgent.MatchType,
         Name = userAgent.Name,
         UserInterfaceLink = userAgent.UserInterfaceLink,
         Width = userAgent.Width,
         Api = userAgent.Api,
         Lines = userAgent.Lines,
         Inputs = userAgent.Inputs,
         InputMinDb = userAgent.MinInputDb,
         InputMaxDb = userAgent.MaxInputDb,
         Comment = userAgent.Comment
     });
 }