Exemplo n.º 1
0
        public List <Message> GetAllMessagesForUser(DataAccessLayer.User user, DateTime?syncTime)
        {
            DateTime            now             = DateTime.UtcNow;
            DateTime            nonNullSyncTime = syncTime ?? DateTime.UtcNow - new TimeSpan(7, 0, 0, 0);
            List <SortCriteria> sorts           = new List <SortCriteria>();

            sorts.Add(new SortCriteria()
            {
                Column = MessageTable.LastUpdateTimeUtcTicksColumn, SortOrder = SortOrder.Descending
            });

            // Create a filter to say Select * from MessageTable where (Sender = @userId OR Recipient = @userId OR Recipient = @groupThatUserIsAMemberOf) AND LastUpdateTime > @syncTime
            QueryFilter filter = new SelectFilter(
                MessageTable.Instance,
                new AndFilter(
                    MessageStore.CreateUserFilter(user),
                    new ComparisonFilter(MessageTable.LastUpdateTimeUtcTicksColumn, nonNullSyncTime.Ticks, ComparisonOperator.Greater)),
                sorts);

            List <ITableRow> rows     = MessageTable.Instance.QueryRows(filter);
            List <Message>   messages = new List <Message>();

            if (rows != null)
            {
                for (int i = 0; i < rows.Count; i++)
                {
                    messages.Add(DataContractToTableRowConverter.ConvertToMessage(MessageTable.Instance, rows[i]));
                }
            }

            DataAccessLayer.UserService.UpdateUserLastSyncTime(user.Id, now);

            return(messages);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Save a message in the database
        /// </summary>
        /// <param name="message"></param>
        public void SaveMessage(DataAccessLayer.User sender, Message message)
        {
            message.Validate(sender);
            ITableRow tableRow = message.ConvertToTableRow();

            MessageTable.Instance.InsertRow(tableRow);
        }
Exemplo n.º 3
0
 public void DeleteUser(CommonLibrary.Users user)
 {
     DataAccessLayer.User usr = new DataAccessLayer.User
     {
         UserID = user.UserID
     };
     _projectManager.Entry(usr).State = EntityState.Deleted;
     _projectManager.SaveChanges();
 }
Exemplo n.º 4
0
 public User(DataAccessLayer.User u)
 {
     this.Password = u.password;
     this.Email    = u.email;
     this.Nickname = u.nickname;
     this.Board    = u.board;
     dal           = u;
     logged_in     = false;
 }
Exemplo n.º 5
0
 public User(string email, string password, string nickname, string board)
 {
     this.Email    = email;
     this.Nickname = nickname;
     this.Password = password;
     this.Board    = board;
     dal           = new DataAccessLayer.User(email, password, nickname, board);
     logged_in     = false;
 }
Exemplo n.º 6
0
        public void AddUser(CommonLibrary.Users user)
        {
            DataAccessLayer.User usr = new DataAccessLayer.User
            {
                UserID     = user.UserID,
                FirstName  = user.FirstName,
                LastName   = user.LastName,
                EmployeeID = user.EmployeeID
            };

            _projectManager.Users.Add(usr);
            _projectManager.SaveChanges();
        }
Exemplo n.º 7
0
        public int GetUnseenMessageCount(DataAccessLayer.User user, DateTime lastSeenTime)
        {
            // Create a filter to say Select * from MessageTable where (Sender = @userId OR Recipient = @userId OR Recipient = @groupThatUserIsAMemberOf) AND LastUpdateTime > @syncTime
            QueryFilter filter = new SelectFilter(
                MessageTable.Instance,
                new AndFilter(
                    MessageStore.CreateUserFilterForCount(user),
                    new ComparisonFilter(MessageTable.LastUpdateTimeUtcTicksColumn, lastSeenTime.Ticks, ComparisonOperator.Greater)),
                null,
                true /*count*/);

            return(MessageTable.Instance.GetRowCount(filter));
        }
Exemplo n.º 8
0
        public DataAccessLayer.User MapToDatabaseType(User userModel)
        {
            if (userModel == null)
            {
                return(null);
            }
            var user = new DataAccessLayer.User
            {
                id        = userModel.Id ?? 0,
                username  = userModel.Username,
                email     = userModel.Email,
                password  = userModel.Password,
                firstname = userModel.FirstName,
                lastname  = userModel.LastName,
                avatar    = userModel.Avatar
            };

            return(user);
        }
Exemplo n.º 9
0
        public User MapToUserModel(DataAccessLayer.User userFromDatabase)
        {
            if (userFromDatabase == null)
            {
                return(null);
            }

            var user = new User
            {
                Id        = userFromDatabase.id,
                Username  = userFromDatabase.username,
                Email     = userFromDatabase.email,
                Password  = userFromDatabase.password,
                FirstName = userFromDatabase.firstname,
                LastName  = userFromDatabase.lastname,
                Avatar    = userFromDatabase.avatar
            };

            return(user);
        }
Exemplo n.º 10
0
        internal static QueryFilter CreateUserFilterForCount(DataAccessLayer.User user)
        {
            QueryFilter recipientFilter = new ComparisonFilter(MessageTable.RecipientIdColumn, user.Id, ComparisonOperator.Equal);

            if (user.GroupIds == null || user.GroupIds.Count == 0)
            {
                return(recipientFilter);
            }

            List <QueryFilter> filters = new List <QueryFilter>();

            filters.Add(recipientFilter);

            for (int i = 0; i < user.GroupIds.Count; i++)
            {
                filters.Add(new ComparisonFilter(MessageTable.RecipientIdColumn, user.GroupIds[i], ComparisonOperator.Equal));
            }

            return(new OrFilter(filters));
        }
Exemplo n.º 11
0
 private void AuthenticateUser(string token)
 {
     try
     {
         user = DataAccessLayer.DAL.GetUserObject(token);
         if (user.Uid != -1)
         {
             var identity = new CustomIdentity(user);
             SetPrincipal(new GenericPrincipal(identity, null));
             //
         }
         else
         {
             // Invalid User
             HttpContext.Current.Response.StatusCode = 401;
         }
     }
     catch (Exception)
     {
         HttpContext.Current.Response.StatusCode = 401;
     }
 }
Exemplo n.º 12
0
        public bool RegisterUserUsingAPI(Common.Models.User user)
        {
            bool status;

            try
            {
                DataAccessLayer.User userObj = new DataAccessLayer.User();
                userObj.EmailId      = user.EmailId;
                userObj.UserPassword = user.UserPassword;
                userObj.Gender       = user.Gender;
                userObj.DateOfBirth  = user.DateOfBirth;
                userObj.Address      = user.Address;

                var dal = new QuickKartRepository();

                status = dal.RegisterUserUsingLinq(userObj);
            }
            catch (Exception)
            {
                status = false;
            }
            return(status);
        }
Exemplo n.º 13
0
        /*public DataAccessLayer.User ToDalObject()
         * {
         *  DataAccessLayer.User u = new DataAccessLayer.User(this.Email,this.Password,this.Nickname);
         *  return u;
         * }*/

        public void AddToDatabase()
        {
            DataAccessLayer.User u = new DataAccessLayer.User(this.Email, this.Password, this.Nickname, this.Board);
            u.Add();
        }
Exemplo n.º 14
0
 public User()
 {
     accessUser = new DataAccessLayer.User();
 }
Exemplo n.º 15
0
        private static Guid GetConversationId(DataAccessLayer.User sender, DataAccessLayer.User recipient)
        {
            int senderId = recipient.UserType == DataAccessLayer.UserType.Group ? 0 : sender.Id;

            return(MessageValidator.GetConversationGuid(senderId, recipient.Id));
        }
Exemplo n.º 16
0
        public static void Validate(this Message message, DataAccessLayer.User sender)
        {
            message.MessageId = Guid.NewGuid();
            message.LastUpdateTimeUtcTicks = DateTime.UtcNow.Ticks;
            message.PostDateTimeUtcTicks   = DateTime.UtcNow.Ticks;

            if (message.Sender == null || message.Sender.Id != sender.Id)
            {
                throw new InvalidMessageException(InvalidMessageError.InvalidSenderError);
            }

            if (message.Recipient == null || message.Recipient.Id == message.Sender.Id)
            {
                throw new InvalidMessageException(InvalidMessageError.InvalidRecipientError);
            }

            if (message.ConversationId != GetConversationId(message.Sender, message.Recipient) &&
                message.ConversationId != Guid.Empty)
            {
                throw new InvalidMessageException(InvalidMessageError.InvalidSenderError);
            }

            if (message.ConversationId == Guid.Empty)
            {
                int senderId = message.Recipient.UserType == DataAccessLayer.UserType.Group ? 0 : message.SenderId;

                message.ConversationId = MessageValidator.GetConversationGuid(senderId, message.RecipientId);
            }

            if (((message.MessageFlags & MessageFlags.Image) == MessageFlags.Image) &&
                message.Image == null)
            {
                throw new InvalidMessageException(InvalidMessageError.ImageMissingError);
            }

            if (((message.MessageFlags & (MessageFlags.PollMessage | MessageFlags.Calendar)) == MessageFlags.PollMessage) &&
                (message.PollOptions == null || message.PollOptions.Count == 0))
            {
                throw new InvalidMessageException(InvalidMessageError.InvalidPollOptionsError);
            }

            if (((message.MessageFlags & MessageFlags.PollResponseMessage) == MessageFlags.PollResponseMessage) &&
                (message.PollMessageId == Guid.Empty))
            {
                throw new InvalidMessageException(InvalidMessageError.InvalidPollResponseError);
            }

            if ((message.MessageFlags & MessageFlags.PollResponseMessage) == MessageFlags.PollResponseMessage)
            {
                if (message.PollMessageId == null)
                {
                    throw new InvalidMessageException(InvalidMessageError.InvalidPollResponseError);
                }

                Message pollMessage = MessageStore.Instance.GetMessage(message.ConversationId, message.PollMessageId.Value);
                if (pollMessage == null)
                {
                    throw new InvalidMessageException(InvalidMessageError.InvalidPollResponseError);
                }

                if ((pollMessage.MessageFlags & MessageFlags.PollMessage) != MessageFlags.PollMessage)
                {
                    throw new InvalidMessageException(InvalidMessageError.InvalidPollResponseError);
                }

                if (((pollMessage.MessageFlags & MessageFlags.Calendar) == 0) &&
                    !pollMessage.PollOptions.Contains(message.PollResponse))
                {
                    throw new InvalidMessageException(InvalidMessageError.InvalidPollResponseError);
                }
            }

            if (message.ClientMessageId == Guid.Empty)
            {
                message.ClientMessageId = Guid.NewGuid();
            }
        }