public async Task SendCampaign(CampaignView campaign)
        {
            if (campaign == null)
            {
                throw new ArgumentException("Campaign must not be null", nameof(campaign));
            }

            // ASP.NET Core automatically camelCases JSON responses, but we have to do so manually
            var data = new EmitData
            {
                Action     = UpdatedCampaign,
                CampaignId = campaign.CampaignId,
                Data       = campaign
            };
            string encodedData = JsonConvert.SerializeObject(data, new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });
            var uri     = new Uri("http://localhost:4000/emit");
            var content = new StringContent(encodedData, Encoding.UTF8, "application/json");

            try
            {
                var response = await httpClient.PutAsync(uri, content);

                LogResponse(response, nameof(SendCharacter));
            }
            catch (HttpRequestException)
            {
                logger.LogError("Exception thrown by HTTP request to socket server");
            }
        }
        public SiteResponse <List <CampaignView> > Get()
        {
            myPanelDBEntities db = new myPanelDBEntities();
            var response         = new SiteResponse <List <CampaignView> >();
            var allpack          = db.PurchacingPackages.ToList();
            var com = db.Companies.ToList();

            response.Status = allpack.Any();
            if (response.Status)
            {
                //packageid=1 kampanyalar bölümü veritabanında olmayan kampanyaların company_idsi 0dır.
                response.Message = "Kampanyalar listeleniyor";
                var campaignInfo = new List <CampaignView>();
                foreach (var purchacing in allpack)
                {
                    var camp = new CampaignView();
                    if (purchacing.PackageId == 1)
                    {
                        var varmıCom = com.Where(c => c.CompanyName == purchacing.CompanyName).ToList().Any();
                        if (varmıCom)
                        {
                            camp.Adress      = purchacing.Adress;
                            camp.CompanyName = purchacing.CompanyName;
                            camp.PackageId   = purchacing.PackageId;
                            camp.AddedDate   = purchacing.PurchaseDate;
                            camp.CompanyId   = db.Companies.FirstOrDefault(s => s.CompanyName.Contains(purchacing.CompanyName)).Id;
                            campaignInfo.Add(camp);
                            var getComid  = db.Companies.Find(camp.CompanyId);
                            var comidList = new List <Companies>();
                            //veritabanında kayıtlı olan firmalar
                            if (camp.CompanyId != 0)
                            {
                                var İnfoCamLists = new List <Company>();
                                var myCom        = new Company(getComid);
                                İnfoCamLists.Add(myCom);
                                camp.mycom = İnfoCamLists.ToList();
                            }
                        }
                        else
                        {
                            camp.Adress      = purchacing.Adress;
                            camp.CompanyName = purchacing.CompanyName;
                            camp.PackageId   = purchacing.PackageId;
                            camp.AddedDate   = purchacing.PurchaseDate;
                            campaignInfo.Add(camp);
                        }
                    }
                }
                response.Data = campaignInfo;
            }
            else
            {
                response.Message = "Listelenecek kampanya yok";
            }
            return(response);
        }
        public async Task Success_HasCharacter()
        {
            // Arrange
            var          options      = DatabaseSetup.CreateContextOptions();
            const string expectedUser = "******";
            CampaignView result       = null;
            Type         eType        = null;

            using (var db = new DatabaseContext(options))
            {
                db.Campaigns.Add(new Campaign
                {
                    Name       = "A campaign",
                    GmUserId   = "Some random dude",
                    Characters = new List <Character>
                    {
                        new Character
                        {
                            BaseStrength  = 10,
                            BaseDexterity = 10,
                            BaseMind      = 10,
                            Class         = Micro20ClassType.Cleric,
                            Race          = Micro20RaceType.Dwarf,
                            Level         = 1,
                            UserId        = expectedUser
                        }
                    }
                });
                int changes = await db.SaveChangesAsync();

                Assert.Equal(2, changes);
            }

            // Act
            using (var db = new DatabaseContext(options))
            {
                var games      = new GameService(options);
                var campaignId = (await db.Campaigns.FirstAsync()).CampaignId;

                try
                {
                    result = await games.GetCampaign(campaignId, expectedUser);
                }
                catch (Exception e)
                {
                    eType = e.GetType();
                }
            }


            // Assert
            Assert.NotNull(result);
            Assert.Null(eType);
        }
        public async Task Success_InvalidUser()
        {
            // Arrange
            var          options      = DatabaseSetup.CreateContextOptions();
            const string expectedUser = "******";
            const string unauthorized = "A different ID";
            CampaignView result       = null;
            Type         eType        = null;
            var          campaigns    = new List <Campaign>
            {
                new Campaign
                {
                    Name     = "A campaign",
                    GmUserId = expectedUser
                },
                new Campaign
                {
                    Name     = "Another campaign",
                    GmUserId = expectedUser
                }
            };

            using (var db = new DatabaseContext(options))
            {
                db.Campaigns.AddRange(campaigns);
                int changes = await db.SaveChangesAsync();

                Assert.Equal(campaigns.Count, changes);
            }

            // Act
            using (var db = new DatabaseContext(options))
            {
                var games      = new GameService(options);
                var campaignId = (await db.Campaigns.FirstAsync()).CampaignId;

                try
                {
                    result = await games.GetCampaign(campaignId, unauthorized);
                }
                catch (Exception e)
                {
                    eType = e.GetType();
                }
            }

            // Assert
            Assert.Null(result);
            Assert.NotNull(eType);
            Assert.Equal(typeof(UnauthorizedException), eType);
        }
        /// <summary>
        /// initialisiert Kampagnenseite
        /// </summary>
        public CampaignPage(CampaignControl campaignControl)
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            // Kampagnenansicht initialisieren
            _campaignView         = new CampaignView();
            _campaignView.Visible = false;
            _campaignView.Dock    = DockStyle.Fill;

            // Kampagnenansicht zu Seite hinzufügen
            panelBottom.Controls.Add(_campaignView);

            // Kampagnenverwaltung referenzieren
            _campaignControl = campaignControl;
            _campaignControl.OnAddCampaign += new CampaignControl.CampaignEventHandler(
                _campaignControl_OnAddCampaign);
            _campaignControl.OnRefreshCampaign += new CampaignControl.CampaignEventHandler(
                _campaignControl_OnRefreshCampaign);
            _campaignControl.OnRemoveCampaign += new CampaignControl.CampaignEventHandler(
                _campaignControl_OnRemoveCampaign);
        }
        public SiteResponse <object> Addp(PuchPackage pack)
        {
            var                dbCampaignSave = new Campaigns();
            Showcase           dbshowSave     = new Showcase();
            var                response       = new SiteResponse <object>();
            PurchacingPackages getpackage     = new PurchacingPackages();
            var                com            = db.Companies.ToList();

            response.Status = pack == null;
            if (response.Status)
            {
                response.Message = "Bilgileri doldurunuz";
                return(response);
            }
            getpackage.PurchaseDate      = DateTime.Now;
            getpackage.PackageId         = pack.PackageId;
            getpackage.Member_Id         = Convert.ToInt32(HttpContext.Current.Session["UserID"]);
            getpackage.Adress            = pack.Adress;
            getpackage.TaxAdministration = pack.TaxAdministration;
            getpackage.TaxNumber         = pack.TaxNumber;
            getpackage.CompanyName       = pack.CompanyName;
            var camp = new CampaignView();

            if (pack.PackageId == 1)
            {
                var varmıCom = com.Where(c => c.CompanyName == pack.CompanyName).ToList().Any();
                if (varmıCom)
                {
                    camp.CompanyId = db.Companies.FirstOrDefault(s => s.CompanyName.Contains(pack.CompanyName)).Id;
                    var getComid = db.Companies.Find(camp.CompanyId);
                    if (camp.CompanyId != 0)
                    {
                        //dbCampaignSave.Id = 1;
                        dbCampaignSave.AddedDate          = DateTime.Now;
                        dbCampaignSave.Companies_Id       = getComid.Id;
                        dbCampaignSave.CampaignConditions = "yok";
                        dbCampaignSave.AdImage            = "yok";
                        db.Entry(dbCampaignSave).State    = EntityState.Added;
                        db.SaveChanges();
                    }
                }
                else
                {
                    //dbCampaignSave.Id = 1;
                    dbCampaignSave.AddedDate          = DateTime.Now;
                    dbCampaignSave.CampaignConditions = "yok";
                    dbCampaignSave.AdImage            = "yok";
                    dbCampaignSave.CompanyName        = pack.CompanyName;
                    db.Entry(dbCampaignSave).State    = EntityState.Added;
                    db.SaveChanges();
                }
            }

            if (pack.PackageId == 2)
            {
                var varmıCom = com.Where(c => c.CompanyName == pack.CompanyName).ToList().Any();
                if (varmıCom)
                {
                    camp.CompanyId = db.Companies.FirstOrDefault(s => s.CompanyName.Contains(pack.CompanyName)).Id;
                    var getComid = db.Companies.Find(camp.CompanyId);
                    if (camp.CompanyId != 0)
                    {
                        //dbshowSave.Id = 1;
                        dbshowSave.AddedDate           = DateTime.Now;
                        dbshowSave.Companies_Id        = getComid.Id;
                        dbshowSave.CompanyName         = pack.CompanyName;
                        db.Entry(dbCampaignSave).State = EntityState.Added;
                        db.SaveChanges();
                    }
                }
                else
                {
                    //dbshowSave.Id = 1;
                    dbshowSave.AddedDate           = DateTime.Now;
                    dbshowSave.CompanyName         = pack.CompanyName;
                    db.Entry(dbCampaignSave).State = EntityState.Added;
                    db.SaveChanges();
                }
            }
            getpackage.BillingInfo     = "yok";
            getpackage.Email           = pack.Email;
            getpackage.Phone           = pack.Phone;
            getpackage.Company_Id      = pack.Company_Id;
            getpackage.isPurchasing    = true;
            db.Entry(getpackage).State = EntityState.Added;
            db.SaveChanges();
            response.Status = getpackage.PackageId != 0;
            if (response.Status)
            {
                return(response);
            }
            response.Message = "Paket eklenirken hata oluştu!";
            return(response);
        }