Esempio n. 1
0
        public static void SendProfiles(Client client)
        {
            Profiles profiles = new Profiles()
            {
                List = new List <SaveProfileRequest>()
            };

            using (var db = new DatabaseContainer())
            {
                var query = from p in db.ProfilesSet
                            where p.UserId == client.Id
                            select p;

                if (query.Count() > 0)
                {
                    foreach (var profile in query)
                    {
                        SaveProfileRequest profileData = new SaveProfileRequest()
                        {
                            Name = profile.Name
                        };

                        TaskData taskData = new TaskData()
                        {
                            Duration        = profile.Duration,
                            RequestDuration = profile.RequestDuration,
                            Timeout         = profile.Timeout,
                            VirtualUsers    = profile.VirtualUsers,
                            Strategy        = (TestingStrategy)profile.Strategy
                        };

                        taskData._URLs = new List <string>();

                        var queryUrls = from u in db.UrlsSet
                                        where u.Group == profile.UrlGroup
                                        select u;

                        foreach (var url in queryUrls)
                        {
                            taskData._URLs.Add(url.Url);
                        }

                        profileData.Data = taskData;
                        profiles.List.Add(profileData);
                    }
                }
            }

            client.Send(profiles);
        }
Esempio n. 2
0
        public static void HandleSaveProfile(Client client, object data)
        {
            if (client.Generator != null || !client.Authenticated)
            {
                return;
            }

            SaveProfileRequest request = (SaveProfileRequest)data;

            if (request.Name == null || request.Data == null)
            {
                return;
            }

            using (var db = new DatabaseContainer())
            {
                var query = from p in db.ProfilesSet
                            where p.Name == request.Name
                            select p;

                if (query.Count() > 0)
                {
                    client.Send(new SaveProfileResponse()
                    {
                        Result = SaveProfileResult.NAME_EXISTS
                    });
                }
                else
                {
                    int max = db.UrlsSet.Count() > 0 ? db.UrlsSet.Max(u => u.Group) : 0;

                    foreach (var url in request.Data._URLs)
                    {
                        db.UrlsSet.Add(new Urls()
                        {
                            Group = max + 1,
                            Url   = url
                        });
                    }

                    db.ProfilesSet.Add(new Database.Profiles()
                    {
                        UserId          = client.Id,
                        Duration        = request.Data.Duration,
                        Name            = request.Name,
                        RequestDuration = request.Data.RequestDuration,
                        Strategy        = (byte)request.Data.Strategy,
                        Timeout         = request.Data.Timeout,
                        UrlGroup        = max + 1,
                        VirtualUsers    = request.Data.VirtualUsers
                    });

                    db.SaveChanges();

                    client.Send(new SaveProfileResponse()
                    {
                        Result = SaveProfileResult.OK
                    });

                    SendProfiles(client);
                }
            }
        }