コード例 #1
0
        /// <summary>
        /// obter todos os registros de tipo TType no banco de dados
        /// </summary>
        /// <param name="camposSelect"></param>
        /// <returns></returns>
        public async Task <JsonResult> GetAsync(string[] camposSelect)
        {
            //verifica parâmetros que são de preenchimento obrigatório.
            if (camposSelect == null || camposSelect.Length == 0)
            {
                throw new Exception("Parâmetros inválidos!");
            }

            //conectar no banco de dados.
            CouchClient   couchClient   = new CouchClient(connectionString);
            CouchDatabase couchDataBase = await couchClient.GetDatabaseAsync(dataBase);

            //É preciso informar rquais campos serão retornados na consulta ao CouchDB
            FindBuilder findBuilder = new FindBuilder().Fields(camposSelect);

            //obtem registros em banco de dados.
            CouchResponse couchResponse = await couchDataBase.SelectAsync(findBuilder);

            //valida o status do retorno a consulta ao CouchDB
            if (couchResponse.StatusCode == HttpStatusCode.OK)
            {
                //transforma o resultado em JsonTextReader
                JsonTextReader jsonTextReader = new JsonTextReader(new StringReader(couchResponse.Docs.ToString()));

                //transforma o reader em objeto do tipo TType.
                TType[] result = new JsonSerializer().Deserialize(jsonTextReader, typeof(TType[])) as TType[];

                return(new JsonResult(result));
            }
            else
            {
                //retorna o erro ocorrido durante a pesquisa do CouchDB
                return(new JsonResult(couchResponse.Content));
            }
        }
コード例 #2
0
        public async Task <JsonResult> DeleteAsync(string id, string rev)
        {
            try
            {
                //se não houve campos para serem listados, deverá retornar a lista vazia.
                if (Guid.Equals(id, Guid.Empty))
                {
                    throw new Exception("Parâmetros inválidos!");
                }

                //conectar no banco de dados.
                CouchClient   couchClient   = new CouchClient(connectionString);
                CouchDatabase couchDataBase = await couchClient.GetDatabaseAsync(dataBase);

                //remove o documento.
                CouchResponse couchResponse = await couchDataBase.DeleteAsync(id, rev);

                //verifica se houve a exclusão
                if (couchResponse.StatusCode == HttpStatusCode.Accepted ||
                    couchResponse.StatusCode == HttpStatusCode.OK)
                {
                    return(new JsonResult("Ok"));
                }
                else
                {
                    //retorna o erro ocorrido durante a pesquisa do CouchDB
                    return(new JsonResult(couchResponse.Content));
                }
            }
            catch (Exception ex)
            {
                return(new JsonResult(ex.Message));
            }
        }
コード例 #3
0
        public async Task <JsonResult> PostAsync(TType type)
        {
            try
            {
                //verifica parâmetros que são de preenchimento obrigatório.
                if (type == null)
                {
                    throw new Exception("Parâmetros inválidos!");
                }

                //conectar no banco de dados.
                CouchClient   couchClient   = new CouchClient(connectionString);
                CouchDatabase couchDataBase = await couchClient.GetDatabaseAsync(dataBase);

                //Os campos _id e _rev são gerados automaticamente pelo CouchDB. Quando fazemos uma inserção, devemos remover estes campos do objeto a ser persistido.
                //Vale lembrar que estes mesmos dois campos são obrigatórios para alteração/exclusão de documentos.
                JObject jObject = JObject.FromObject(type);
                jObject.Remove("_id");
                jObject.Remove("_rev");

                //persiste o novo documento
                CouchResponse couchResponse = await couchDataBase.InsertAsync(jObject);

                //valida o status do retorno a consulta ao CouchDB
                if (couchResponse.StatusCode == HttpStatusCode.Created ||
                    couchResponse.StatusCode == HttpStatusCode.Accepted ||
                    couchResponse.StatusCode == HttpStatusCode.OK)
                {
                    object chaveRetorno = new { _id = couchResponse.Id, _rev = couchResponse.Rev };

                    return(new JsonResult(chaveRetorno));
                }
                else
                {
                    //retorna o erro ocorrido durante a pesquisa do CouchDB
                    return(new JsonResult(couchResponse.Content));
                }
            }
            catch (Exception ex)
            {
                return(new JsonResult(ex.Message));
            }
        }
コード例 #4
0
        public async Task <JsonResult> GetAsync(string _id, string[] camposSelect)
        {
            try
            {
                //verifica parâmetros que são de preenchimento obrigatório.
                if (camposSelect == null || camposSelect.Length == 0 || string.IsNullOrEmpty(_id))
                {
                    throw new Exception("Parâmetros inválidos!");
                }

                //conectar no banco de dados.
                CouchClient   couchClient   = new CouchClient(connectionString);
                CouchDatabase couchDataBase = await couchClient.GetDatabaseAsync(dataBase);

                /*Cria condição (FindBuilder.Selector) que será adicionada ao select*/
                FindBuilder findBuilder = (new FindBuilder()).Selector("_id", SelectorOperator.Equals, _id);

                //obtem registros no CouchDB
                CouchResponse couchResponse = await couchDataBase.SelectAsync(findBuilder);

                //valida o status do retorno a consulta ao CouchDB
                if (couchResponse.StatusCode == HttpStatusCode.OK)
                {
                    //transforma o resultado em JsonTextReader
                    JsonTextReader jsonTextReader = new JsonTextReader(new StringReader(couchResponse.Docs[0].ToString()));

                    //transforma o reader em objeto do tipo TType.
                    TType result = (TType) new JsonSerializer().Deserialize(jsonTextReader, typeof(TType));

                    return(new JsonResult(result));
                }
                else
                {
                    //retorna o erro ocorrido durante a pesquisa do CouchDB
                    return(new JsonResult(couchResponse.Content));
                }
            }
            catch (Exception ex)
            {
                return(new JsonResult(ex.Message));
            }
        }
コード例 #5
0
        public async Task <JsonResult> PutAsync(TType type)
        {
            try
            {
                //verifica parâmetros que são de preenchimento obrigatório.
                if (type == null)
                {
                    throw new Exception("Parâmetros inválidos!");
                }

                //conectar no banco de dados.
                CouchClient   couchClient   = new CouchClient(connectionString);
                CouchDatabase couchDataBase = await couchClient.GetDatabaseAsync(dataBase);

                //prepara objeto type para ser persistido.
                JObject jObject = JObject.FromObject(type);

                //atualiza o documento no CouchDB
                CouchResponse couchResponse = await couchDataBase.UpdateAsync(JToken.Parse(jObject.ToString()));

                if (couchResponse.StatusCode == HttpStatusCode.Created ||
                    couchResponse.StatusCode == HttpStatusCode.Accepted ||
                    couchResponse.StatusCode == HttpStatusCode.OK)
                {
                    return(new JsonResult(type));
                }
                else
                {
                    //retorna o erro ocorrido durante a pesquisa do CouchDB
                    return(new JsonResult(couchResponse.Content));
                }
            }
            catch (Exception ex)
            {
                return(new JsonResult(ex.Message));
            }
        }
コード例 #6
0
ファイル: Utility.cs プロジェクト: zidan420/Cricketers
        public void Extract()
        {
            RestClient cli = new RestClient("http://192.168.217.128:81/");

            RestRequest request = new RestRequest("/profile/_temp_view", Method.POST);

            request.RequestFormat = DataFormat.Json;
            CouchJson json = new CouchJson();

            json.map = @"function(doc) {
                                        if(doc.bat['ODIs'] || doc.bowl['ODIs']) emit(doc,null);
                                    }";
            request.AddBody(json);
            cli.ExecuteAsync(request, delegate(RestResponse re)
            {
                CouchResponse docs = JsonConvert.DeserializeObject <CouchResponse>(re.Content);


                foreach (CouchData data in docs.rows)
                {
                    Document doc           = data.key;
                    EntitySet <Team> teams = new EntitySet <Team>();
                    foreach (string team in doc.profile.Teams)
                    {
                        teams.Add(new Team {
                            Name = team
                        });
                    }

                    EntitySet <Debut> debuts = new EntitySet <Debut>();
                    if (!doc.debut.odi.Equals("-"))
                    {
                        debuts.Add(new Debut {
                            MatchType = 0, Match = doc.debut.odi
                        });
                    }
                    if (!doc.debut.test.Equals("-"))
                    {
                        debuts.Add(new Debut {
                            MatchType = 1, Match = doc.debut.test
                        });
                    }
                    if (!doc.debut.firstClass.Equals("-"))
                    {
                        debuts.Add(new Debut {
                            MatchType = 2, Match = doc.debut.firstClass
                        });
                    }
                    if (!doc.debut.t20i.Equals("-"))
                    {
                        debuts.Add(new Debut {
                            MatchType = 3, Match = doc.debut.t20i
                        });
                    }
                    if (!doc.debut.twenty20.Equals("-"))
                    {
                        debuts.Add(new Debut {
                            MatchType = 4, Match = doc.debut.twenty20
                        });
                    }

                    EntitySet <BattingStat> battingStats = new EntitySet <BattingStat>();
                    if (!doc.bat.odi.matches.Equals("-"))
                    {
                        battingStats.Add(new BattingStat
                        {
                            MatchType  = 0,
                            Runs       = doc.bat.odi.runs,
                            Fours      = doc.bat.odi.fours,
                            Sixes      = doc.bat.odi.sixes,
                            Fifties    = doc.bat.odi.fifties,
                            Hundreds   = doc.bat.odi.hundreds,
                            Innings    = doc.bat.odi.innings,
                            HighScore  = doc.bat.odi.highScore,
                            Average    = doc.bat.odi.average,
                            Catches    = doc.bat.odi.catches,
                            Matches    = doc.bat.odi.matches,
                            StrikeRate = doc.bat.odi.strikeRate,
                            Stumpings  = doc.bat.odi.stumpings
                        });
                    }
                    if (!doc.bat.test.matches.Equals("-"))
                    {
                        battingStats.Add(new BattingStat
                        {
                            MatchType  = 1,
                            Runs       = doc.bat.test.runs,
                            Fours      = doc.bat.test.fours,
                            Sixes      = doc.bat.test.sixes,
                            Fifties    = doc.bat.test.fifties,
                            Hundreds   = doc.bat.test.hundreds,
                            Innings    = doc.bat.test.innings,
                            HighScore  = doc.bat.test.highScore,
                            Average    = doc.bat.test.average,
                            Catches    = doc.bat.test.catches,
                            Matches    = doc.bat.test.matches,
                            StrikeRate = doc.bat.test.strikeRate,
                            Stumpings  = doc.bat.test.stumpings
                        });
                    }
                    if (!doc.bat.firstClass.matches.Equals("-"))
                    {
                        battingStats.Add(new BattingStat
                        {
                            MatchType  = 2,
                            Runs       = doc.bat.firstClass.runs,
                            Fours      = doc.bat.firstClass.fours,
                            Sixes      = doc.bat.firstClass.sixes,
                            Fifties    = doc.bat.firstClass.fifties,
                            Hundreds   = doc.bat.firstClass.hundreds,
                            Innings    = doc.bat.firstClass.innings,
                            HighScore  = doc.bat.firstClass.highScore,
                            Average    = doc.bat.firstClass.average,
                            Catches    = doc.bat.firstClass.catches,
                            Matches    = doc.bat.firstClass.matches,
                            StrikeRate = doc.bat.firstClass.strikeRate,
                            Stumpings  = doc.bat.firstClass.stumpings
                        });
                    }
                    if (!doc.bat.twenty20.matches.Equals("-"))
                    {
                        battingStats.Add(new BattingStat
                        {
                            MatchType  = 4,
                            Runs       = doc.bat.twenty20.runs,
                            Fours      = doc.bat.twenty20.fours,
                            Sixes      = doc.bat.twenty20.sixes,
                            Fifties    = doc.bat.twenty20.fifties,
                            Hundreds   = doc.bat.twenty20.hundreds,
                            Innings    = doc.bat.twenty20.innings,
                            HighScore  = doc.bat.twenty20.highScore,
                            Average    = doc.bat.twenty20.average,
                            Catches    = doc.bat.twenty20.catches,
                            Matches    = doc.bat.twenty20.matches,
                            StrikeRate = doc.bat.twenty20.strikeRate,
                            Stumpings  = doc.bat.twenty20.stumpings
                        });
                    }
                    if (!doc.bat.t20i.matches.Equals("-"))
                    {
                        battingStats.Add(new BattingStat
                        {
                            MatchType  = 3,
                            Runs       = doc.bat.t20i.runs,
                            Fours      = doc.bat.t20i.fours,
                            Sixes      = doc.bat.t20i.sixes,
                            Fifties    = doc.bat.t20i.fifties,
                            Hundreds   = doc.bat.t20i.hundreds,
                            Innings    = doc.bat.t20i.innings,
                            HighScore  = doc.bat.t20i.highScore,
                            Average    = doc.bat.t20i.average,
                            Catches    = doc.bat.t20i.catches,
                            Matches    = doc.bat.t20i.matches,
                            StrikeRate = doc.bat.t20i.strikeRate,
                            Stumpings  = doc.bat.t20i.stumpings
                        });
                    }

                    EntitySet <BowlingStat> bowlingStats = new EntitySet <BowlingStat>();
                    if (!doc.bowl.odi.matches.Equals("-"))
                    {
                        bowlingStats.Add(new BowlingStat
                        {
                            MatchType   = 0,
                            Matches     = doc.bowl.odi.matches,
                            Average     = doc.bowl.odi.average,
                            Balls       = doc.bowl.odi.balls,
                            Wickets     = doc.bowl.odi.wickets,
                            EconomyRate = doc.bowl.odi.economy,
                            StrikeRate  = doc.bowl.odi.strikeRate,
                            InningsBest = doc.bowl.odi.inningsBest,
                            MatchBest   = doc.bowl.odi.matchBest,
                            Innings     = doc.bowl.odi.innings,
                            Fives       = doc.bowl.odi.fives,
                            Fours       = doc.bowl.odi.fours,
                            Tens        = doc.bowl.odi.tens
                        });
                    }
                    if (!doc.bowl.test.matches.Equals("-"))
                    {
                        bowlingStats.Add(new BowlingStat
                        {
                            MatchType   = 1,
                            Matches     = doc.bowl.test.matches,
                            Average     = doc.bowl.test.average,
                            Balls       = doc.bowl.test.balls,
                            Wickets     = doc.bowl.test.wickets,
                            EconomyRate = doc.bowl.test.economy,
                            StrikeRate  = doc.bowl.test.strikeRate,
                            InningsBest = doc.bowl.test.inningsBest,
                            MatchBest   = doc.bowl.test.matchBest,
                            Innings     = doc.bowl.test.innings,
                            Fives       = doc.bowl.test.fives,
                            Fours       = doc.bowl.test.fours,
                            Tens        = doc.bowl.test.tens
                        });
                    }
                    if (!doc.bowl.firstClass.matches.Equals("-"))
                    {
                        bowlingStats.Add(new BowlingStat
                        {
                            MatchType   = 2,
                            Matches     = doc.bowl.firstClass.matches,
                            Average     = doc.bowl.firstClass.average,
                            Balls       = doc.bowl.firstClass.balls,
                            Wickets     = doc.bowl.firstClass.wickets,
                            EconomyRate = doc.bowl.firstClass.economy,
                            StrikeRate  = doc.bowl.firstClass.strikeRate,
                            InningsBest = doc.bowl.firstClass.inningsBest,
                            MatchBest   = doc.bowl.firstClass.matchBest,
                            Innings     = doc.bowl.firstClass.innings,
                            Fives       = doc.bowl.firstClass.fives,
                            Fours       = doc.bowl.firstClass.fours,
                            Tens        = doc.bowl.firstClass.tens
                        });
                    }
                    if (!doc.bowl.t20i.matches.Equals("-"))
                    {
                        bowlingStats.Add(new BowlingStat
                        {
                            MatchType   = 3,
                            Matches     = doc.bowl.t20i.matches,
                            Average     = doc.bowl.t20i.average,
                            Balls       = doc.bowl.t20i.balls,
                            Wickets     = doc.bowl.t20i.wickets,
                            EconomyRate = doc.bowl.t20i.economy,
                            StrikeRate  = doc.bowl.t20i.strikeRate,
                            InningsBest = doc.bowl.t20i.inningsBest,
                            MatchBest   = doc.bowl.t20i.matchBest,
                            Innings     = doc.bowl.t20i.innings,
                            Fives       = doc.bowl.t20i.fives,
                            Fours       = doc.bowl.t20i.fours,
                            Tens        = doc.bowl.t20i.tens
                        });
                    }
                    if (!doc.bowl.twenty20.matches.Equals("-"))
                    {
                        bowlingStats.Add(new BowlingStat
                        {
                            MatchType   = 4,
                            Matches     = doc.bowl.twenty20.matches,
                            Average     = doc.bowl.twenty20.average,
                            Balls       = doc.bowl.twenty20.balls,
                            Wickets     = doc.bowl.twenty20.wickets,
                            EconomyRate = doc.bowl.twenty20.economy,
                            StrikeRate  = doc.bowl.twenty20.strikeRate,
                            InningsBest = doc.bowl.twenty20.inningsBest,
                            MatchBest   = doc.bowl.twenty20.matchBest,
                            Innings     = doc.bowl.twenty20.innings,
                            Fives       = doc.bowl.twenty20.fives,
                            Fours       = doc.bowl.twenty20.fours,
                            Tens        = doc.bowl.twenty20.tens
                        });
                    }

                    Profile p = new Profile
                    {
                        Country          = doc.country,
                        Born             = doc.profile.Born,
                        BattingStyle     = doc.profile.battingStyle,
                        BowlingStyle     = doc.profile.bowlingStyle,
                        FieldingPosition = doc.profile.fieldingPosition,
                        Name             = doc.profile.Name,
                        Teams            = teams,
                        Debuts           = debuts,
                        BattingStats     = battingStats,
                        BowlingStats     = bowlingStats
                    };

                    App.DB.Profiles.InsertOnSubmit(p);
                }
                App.DB.SubmitChanges();
            });
        }