예제 #1
0
        public Reply List([FromBody] SecurityRequest model)
        {
            Reply oR = new UtilitiesChat.Models.WS.Reply();

            oR.result = 0;
            if (!VerifyToken(model))
            {
                oR.message = "Método no permitido";
                return(oR);
            }

            using (ChatDBEntities db = new ChatDBEntities())
            {
                List <ListRoomsResponce> lstRoomsResponce = (from d in db.room
                                                             where d.idState == 1
                                                             orderby d.name
                                                             select new ListRoomsResponce {
                    Name = d.name,
                    Description = d.description,
                    Id = d.id
                }).ToList();
                oR.data = lstRoomsResponce;
            }
            oR.result = 1;

            return(oR);
        }
예제 #2
0
        public Reply Get(MessagesRequest model)
        {
            Reply oR = new Reply();

            oR.result = 0;
            try
            {
                if (!VerifyToken(model))
                {
                    oR.message = "Metodo no permitido";
                    return(oR);
                }

                using (ChatDBEntities db = new ChatDBEntities())
                {
                    List <MessagesResponse> lst = (from d in db.message.ToList()
                                                   where d.idestate == 1 && d.idRoom == model.idRoom
                                                   orderby d.date_created descending
                                                   select new MessagesResponse
                    {
                        DateCreated = d.date_created,
                        Id = d.id,
                        idUser = d.idUser,
                        Message = d.text,
                        UserName = d.user.name,
                        TypeMessage = (
                            new Func <int>(
                                () =>
                        {
                            try
                            {
                                if (d.idUser == oUserSession.Id)
                                {
                                    return(1);
                                }
                                else
                                {
                                    return(2);
                                }
                            }
                            catch
                            {
                                return(2);
                            }
                        }
                                )()
                            )
                    }).Take(20).ToList();

                    oR.data   = lst.ToList();
                    oR.result = 1;
                }
            }
            catch (Exception ex)
            {
                oR.message = "Ocurrio un error";
            }

            return(oR);
        }
예제 #3
0
        public static DbResult <LogoutArgs> Logout(string userId, string ip, int port)
        {
            ChatDBEntities db = new ChatDBEntities();

            db = new ChatDBEntities();
            DbResult <LogoutArgs> dbResult = null;
            var cus = db.C_User_Status.FirstOrDefault(cu => cu.IP == ip && cu.Port == port && cu.User_ID == userId);

            if (cus != null)
            {
                cus.Status_ID = "002";
                var efState  = db.Entry(cus).State = EntityState.Modified;
                var efResult = db.SaveChanges();
                if (efResult > 0)
                {
                    dbResult = new DbResult <LogoutArgs>(new LogoutArgs()
                    {
                        ErrorCode = ClientArgs.ArgSuccess
                    });
                }
            }
            else
            {
                dbResult = new DbResult <LogoutArgs>(new LogoutArgs()
                {
                    ErrorCode = ClientArgs.ArgError
                }, DbResult <LogoutArgs> .LOGOUT_ERROR, "未找到对应状态");
            }


            return(dbResult);
        }
예제 #4
0
        public Reply Login(AccessRequest model)
        {
            Reply oR = new Reply();

            using (ChatDBEntities db = new ChatDBEntities())
            {
                var oUser = (from d in db.user
                             where d.email == model.Email && d.password == model.Password
                             select d).FirstOrDefault();
                if (oUser != null)
                {
                    string AccessToken = Guid.NewGuid().ToString();
                    oUser.access_token    = AccessToken;
                    db.Entry(oUser).State = System.Data.Entity.EntityState.Modified;
                    db.SaveChanges();

                    UserResponse oUserResponse = new UserResponse();
                    oUserResponse.AccessToken = AccessToken;
                    oUserResponse.Name        = oUser.name;
                    oUserResponse.City        = oUser.city;
                    oUserResponse.Id          = oUser.idUser;

                    oR.result = 1;
                    oR.data   = oUserResponse;
                }
                else
                {
                    oR.message = "Datos incorrectos";
                }
            }

            return(oR);
        }
예제 #5
0
        private void test()
        {
            var db = new ChatDBEntities();

            foreach (var b in db.C_Msg_Type.Select(s => s.Msg_Type_Description == "11"))
            {
                Console.WriteLine(b);
            }
            ;
        }
예제 #6
0
        public static int LogoutIp(string address, int port)
        {
            ChatDBEntities db  = new ChatDBEntities();
            var            cus = db.C_User_Status.FirstOrDefault(cu => cu.IP == address && cu.Port == port);

            cus.Status_ID       = "002";
            db.Entry(cus).State = EntityState.Modified;
            var efResult = db.SaveChanges();

            return(efResult);
        }
예제 #7
0
        protected bool VerifyToken(string AccessToken)
        {
            using (ChatDBEntities db = new ChatDBEntities())
            {
                var oUser = db.user.Where(d => d.access_token == AccessToken).FirstOrDefault();

                if (oUser != null)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #8
0
        public static DbResult <string> Register(string name, string password, string sex, string city, string userType)
        {
            ChatDBEntities      db     = new ChatDBEntities();
            UserRegister_Result result = db.UserRegister(name, password, sex, city, userType,
                                                         new ObjectParameter("userID", typeof(string))).First();

            if (result.ERROR_CODE == Config.ERROR_CODE_NONE)
            {
                return(new DbResult <string>(result.User_ID, DbEnum.Success));
            }
            else
            {
                return(new DbResult <string>("", DbResult <string> .EXIST, "此用户已存在!"));
            }
        }
예제 #9
0
        protected bool VerifyToken(SecurityRequest model)
        {
            using (ChatDBEntities db = new ChatDBEntities())
            {
                var oUser = db.user.Where(d => d.access_token == model.AccessToken).FirstOrDefault();

                if (oUser != null)
                {
                    oUserSession             = new UserResponse();
                    oUserSession.AccessToken = oUser.access_token;
                    oUserSession.City        = oUser.city;
                    oUserSession.Name        = oUser.name;
                    oUserSession.Id          = oUser.idUser;
                    return(true);
                }
            }
            return(false);
        }
예제 #10
0
        public Reply Get()
        {
            Reply oReply = new Reply();

            using (ChatDBEntities db = new ChatDBEntities())
            {
                List <UserViewModel> lst = (from d in db.user
                                            select new UserViewModel
                {
                    Name = d.name,
                    City = d.city
                }).ToList();

                oReply.result  = 1;
                oReply.message = "";
                oReply.data    = lst;
            }

            return(oReply);
        }
예제 #11
0
        public static DbResult <LoginArgs> Login(string name, string password, string ip, int port)
        {
            ChatDBEntities       db       = new ChatDBEntities();
            DbResult <LoginArgs> dbResult = null;
            int efResult = (int)db.Login(name, password, ip, port).First();

            if (efResult == DbResult <bool> .LOGIN_SUCCESS)
            {
                var user = db.C_User.FirstOrDefault(u => u.User_Name == name);
                dbResult = new DbResult <LoginArgs>(new LoginArgs()
                {
                    UserId = user?.User_ID, Success = true
                });
            }
            else
            {
                dbResult = new DbResult <LoginArgs>(new LoginArgs(), efResult, "登录失败,状态:" + efResult);
            }
            return(dbResult);
        }
예제 #12
0
        public Reply Register([FromBody] Models.Request.User model)
        {
            Reply oReply = new Reply();

            oReply.result = 0;
            try
            {
                Models.user oUser = new Models.user();
                oUser.city         = model.City;
                oUser.idState      = 1;
                oUser.date_created = DateTime.Now;
                oUser.email        = model.Email;
                oUser.password     = model.Password;
                oUser.name         = model.Name;
                using (ChatDBEntities db = new ChatDBEntities())
                {
                    db.user.Add(oUser);
                    db.SaveChanges();

                    oReply.result  = 1;
                    oReply.message = "Se registro el usuario";


                    List <UserViewModel> lst = (from d in db.user
                                                select new UserViewModel
                    {
                        Name = d.name,
                        City = d.city
                    }).ToList();

                    oReply.data = lst;
                }
            }
            catch (Exception ex)
            {
                oReply.message = ("Error al registar un usuario, intenta de nuevo mas tarde");
                // crear un log en base de datos
            }
            return(oReply);
        }
예제 #13
0
        public void Send(int idRoom, string userName, int idUser, string message, string AccessToken)
        {
            if (VerifyToken(AccessToken))
            {
                string fecha = DateTime.Now.ToString();

                using (ChatDBEntities db = new ChatDBEntities())
                {
                    var oMessage = new message();
                    oMessage.idRoom       = idRoom;
                    oMessage.date_created = DateTime.Now;
                    oMessage.idUser       = idUser;
                    oMessage.text         = message;
                    oMessage.idState      = 1;

                    db.message.Add(oMessage);
                    db.SaveChanges();
                }

                Clients.Group(idRoom.ToString()).sendChat(userName, message, fecha, idUser);
            }
        }
예제 #14
0
 public DbAction(ChatDBEntities dbContext)
 {
     this.db = dbContext;
 }
예제 #15
0
 public DbUserAction(ChatDBEntities dbContext) : base(dbContext)
 {
 }