/// <summary>
        /// -заполняет список собак пользователят
        /// -заполняет список мероприятий собак
        /// </summary>
        /// <param name="id">id пользователя</param>
        /// <returns>пользователя(из него можно получить список его собак=> из которого список событий,в которых участвует собака )</returns>
        public async Task <myUser> FillDogsAndEventsLists(int id)
        {
            using (var cnt = await Concrete.OpenConnectionAsync())
            {
                var multi = await cnt.QueryMultipleAsync(
                    sql : "GetWholeUserInfoByUserId",
                    commandType : CommandType.StoredProcedure,
                    param : new { id }
                    );

                myUser user = new myUser();
                user      = multi.Read <myUser>().First();                                  //
                user.Dogs = multi.Read <Dog>().ToList();                                    //записали собак в список собак конкретного пользователя
                List <Event>         events        = multi.Read <Event>().ToList();         //список всех мероприятий, в которых участвуют собаки пользователя
                List <Participation> participation = multi.Read <Participation>().ToList(); // список всех участий собак пользователя

                foreach (var dog in user.Dogs)
                {
                    /// !!!!--------------доделать----------------!!!!

                    ///!!!!---------------------------------------!!!!
                    foreach (var p in participation)
                    {
                        if (dog.DogId == p.DogId)
                        {
                            //добавить мероприятие в список мероприятий
                            //если EventId совпадает c EventId в participation
                            dog.Events = (events.Where(e => e.EventId == p.EventId)).ToList();
                        }
                    }
                }
                return(user);
            }
        }
        public async Task <myUser> GetUserById(int id)
        {
            myUser user = null;

            try
            {
                using (var cnt = await Concrete.OpenConnectionAsync())
                {
                    user = (await cnt.QueryAsync <myUser>(
                                sql: "dbo.GetUserById",
                                commandType: CommandType.StoredProcedure,
                                param: new
                    {
                        id
                    }
                                )).FirstOrDefault();
                }
            }
            catch (Exception e)
            {
                var t = 1;
            }
            return(user);
        }
Beispiel #3
0
        public async Task <IHttpActionResult> getUserById()
        {
            myUser myUser = await myUserManager.GetUserById(1);

            return(WrapSuccess(myUser));
        }