internal ScrutinModel(Scrutin rawScrutin) { this.Uid = rawScrutin.Uid; this.Numero = (int)rawScrutin.Numero; this.Titre = rawScrutin.Titre; this.Demandeur = rawScrutin.Demandeur.Texte; this.Date = rawScrutin.DateScrutin.GetValueOrDefault(); this.Annonce = rawScrutin.SyntheseVote.Annonce; this.Results = new List <GroupeResult>(); this.TotalExprimes = (int)rawScrutin.SyntheseVote.SuffragesExprimes; foreach (var groupe in rawScrutin.VentilationVotes.OrganeScrutin.Groupes.Groupe) { // forge new gp as it may have changed GroupeParlementaireModel groupeParlementaire = new GroupeParlementaireModel(ObjectStorage <BaseRawData> .Singleton().Get <Organe>(groupe.OrganeRef)); this.Results.Add(new GroupeResult { Abstentions = ParseVotants(groupeParlementaire, groupe.Vote.DecompteNominatif.Abstentions?.Votant), NonVotants = ParseVotants(groupeParlementaire, groupe.Vote.DecompteNominatif.NonVotants?.Votant), Pour = ParseVotants(groupeParlementaire, groupe.Vote.DecompteNominatif.Pours?.Votant), Contre = ParseVotants(groupeParlementaire, groupe.Vote.DecompteNominatif.Contres?.Votant), Groupe = groupeParlementaire }); } _modelStorage.Register(this.Uid, this); }
public async Task <Scrutin> CreatePoll(string nom, TypesScrutin?typeScrutin, string candidats, string user) { try { var client = new HttpClient(); //get Id modeScrutin var response = await client.GetAsync("https://voteinback.azurewebsites.net/api/modeScrutin"); var jsonstring = await response.Content.ReadAsStringAsync(); //options.SerializerSettings.ContractResolver = new DefaultContractResolver(); var modeScrutins = JsonConvert.DeserializeObject <List <ModeScrutin> >(jsonstring); var selectedCode = typeScrutin == TypesScrutin.JugementMajoritaire ? Constantes.JUG_MAJ : (typeScrutin == TypesScrutin.VoteAlternatif ? Constantes.VOTE_ALTER : Constantes.SCRUTIN_MAJ); Scrutin scrutin = new Scrutin { Auteur = user, DateOuverture = DateTime.Now, IdModeScrutin = modeScrutins.First(m => m.Code == selectedCode).Id, Nom = nom, Public = true, Description = "Généré par le chatbot", OptionScrutin = new List <OptionScrutin>() }; foreach (var c in candidats.Split(',')) { scrutin.OptionScrutin.Add(new OptionScrutin { Option = new Option { Nom = c } }); } var jsonString = JsonConvert.SerializeObject(scrutin); var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await client.PostAsync("https://voteinback.azurewebsites.net/api/scrutin", content); jsonstring = await response.Content.ReadAsStringAsync(); scrutin = JsonConvert.DeserializeObject <Scrutin>(jsonstring); return(scrutin); } catch (Exception ex) { } return(null); }