Example #1
0
        protected override void OnCreated()
        {
            using (IDataContextWrapper dataContext = _dataContextLocator())
            {
                Group noneGroup = new Group()
                {
                    Id = -1, GroupName = "None"
                };
                GroupsList = new BindableCollection <Group>(dataContext.Table <Group>().OrderBy(g => g.GroupName).ToList());
                GroupsList.Insert(0, noneGroup);

                if (!IsAdding)
                {
                    var client = dataContext.Table <Client>().First(x => x.Id == ClientId);
                    Forename  = client.Forename;
                    Surname   = client.Surname;
                    Birthdate = client.Birthdate;
                    Latitude  = client.Latitude;
                    Longitude = client.Longitude;
                    IsActive  = client.IsActive;
                    Group     = client.Group ?? noneGroup;
                    Photo     = IsoStorageHelper.PhotoFromFile(client.Photo);
                }
                else
                {
                    IsActive = true;
                    Group    = noneGroup;
                }
            }
        }
Example #2
0
        protected override void LoadState()
        {
            Forename      = (string)TombstoningContainer.GetValue(TombstoningVariables.ClientEditForename);
            Surname       = (string)TombstoningContainer.GetValue(TombstoningVariables.ClientEditSurname);
            Birthdate     = (DateTime?)TombstoningContainer.GetValue(TombstoningVariables.ClientEditBirthdate);
            Longitude     = (double?)TombstoningContainer.GetValue(TombstoningVariables.ClientEditLongitude);
            Latitude      = (double?)TombstoningContainer.GetValue(TombstoningVariables.ClientEditLatitude);
            IsActive      = (bool)TombstoningContainer.GetValue(TombstoningVariables.ClientEditIsActive);
            lastPhotoName = (string)TombstoningContainer.GetValue(TombstoningVariables.ClientEditLastPhotoName);
            Photo         = ImageConverter.ConvertToImage((byte[])TombstoningContainer.GetValue(TombstoningVariables.ClientEditPhoto));

            using (IDataContextWrapper dataContext = _dataContextLocator())
            {
                Group noneGroup = new Group()
                {
                    Id = -1, GroupName = "None"
                };
                GroupsList = new BindableCollection <Group>(dataContext.Table <Group>().OrderBy(g => g.GroupName).ToList());
                GroupsList.Insert(0, noneGroup);

                long id = (long)TombstoningContainer.GetValue(TombstoningVariables.ClientEditGroupId);
                Group = GroupsList.FirstOrDefault(x => x.Id == id) ?? noneGroup;
            }
            PhotoChooserTask photoChooserTask = new PhotoChooserTask();

            photoChooserTask.Completed += getPhotoComplete;
        }
        public void Setup()
        {
            _mockRecipeDataContext  = new Mock <IRecipeDataContext>();
            _stubDataContextWrapper = new StubDataContextWrapper(_mockRecipeDataContext.Object);
            _recipeRepository       = new RecipeRepository(_stubDataContextWrapper);

            var recipe1 = new Recipe
            {
                recipe_id   = 1, recipe_name = "Potato", cooking_time = new TimeSpan(00, 30, 00), ingredients = "Potato",
                description = "Cook", is_favorite = false
            };
            var recipe2 = new Recipe
            {
                recipe_id   = 2, recipe_name = "Chicken", cooking_time = new TimeSpan(00, 20, 00),
                ingredients = "Chicken", description = "Boil", is_favorite = false
            };
            var recipe3 = new Recipe
            {
                recipe_id   = 3, recipe_name = "Salad", cooking_time = new TimeSpan(00, 15, 00),
                ingredients = "Cucumber - 1\nTomato - 1", description = "Cut", is_favorite = false
            };

            var recipes = new List <Recipe> {
                recipe1, recipe2, recipe3
            };

            _mockRecipeDataContext.Setup(x => x.Recipes()).Returns(new StubRecipeTable(recipes));
        }
Example #4
0
 public BottleDescriptionRepository(
     IDataContextWrapper dataContext,
     IMapper mapper)
 {
     this.dataContext = dataContext;
     this.mapper      = mapper;
 }
Example #5
0
 public BottleRepository(
     IDataContextWrapper context,
     IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
Example #6
0
 public SignInManagerWrapper(
     SignInManager <User> signInManager,
     IDataContextWrapper dataContext
     )
 {
     this.signInManager = signInManager;
     this.dataContext   = dataContext;
 }
Example #7
0
 public TransactionRepository(
     IDataContextWrapper dataContext,
     IMapper mapper
     )
 {
     this.dataContext = dataContext;
     this.mapper      = mapper;
 }
 public EventRepository(IDataContextWrapper dataContext, IEventPlayerRepository eventPlayerRepo, IMatchRepository matchRepo, IPlayerRepository playerRepo, IRoundPrizeRepository roundPrizeRepository)
 {
     _dataContext           = dataContext;
     _eventPlayerRepository = eventPlayerRepo;
     _matchRepository       = matchRepo;
     _playerRepository      = playerRepo;
     _roundPrizeRepository  = roundPrizeRepository;
 }
Example #9
0
 public UserRepository(
     IDataContextWrapper context,
     IUserManagerWrapper userManager,
     IMapper mapper)
 {
     this.context     = context;
     this.userManager = userManager;
     this.mapper      = mapper;
 }
Example #10
0
 private void ChangeActiveStatus(Client client, bool isActive)
 {
     using (IDataContextWrapper dataContext = _dataContextLocator())
     {
         var clientEntity = dataContext.Table <Client>().First(x => x.Id == client.Id);
         clientEntity.IsActive = isActive;
         dataContext.SubmitChanges();
     }
 }
        public void Create_ExistingEmail_Exception(
            IDataContextWrapper db,
            CustomerCreate data,
            CustomerManager sut)
        {
            data.Email = db.Set <Customer>().Select(x => x.Email).First();

            Assert.Throws <CustomerManager.EmailAlreadyExistsException>(() =>
                                                                        sut.Create(data));
        }
Example #12
0
        protected override void OnCreated()
        {
            base.OnCreated();

            using (IDataContextWrapper dataContext = _dataContextLocator())
                GroupName = dataContext.Table <Group>().First(g => g.Id == GroupId).GroupName;

            RefreshClients();
            SelectedClient = ClientsList.FirstOrDefault();
        }
        public void AddClientToGroup(Group group)
        {
            using (IDataContextWrapper dataContext = _dataContextLocator())
                if (dataContext.Table <Client>().Where(c => c.GroupId == null).Count() == 0)
                {
                    MessageBox.Show("There are no clients without a group.");
                    return;
                }

            _navigationService.UriFor <GroupAddClientViewModel>().WithParam(g => g.GroupId, group.Id).Navigate();
        }
        public void RemoveClientFromGroup(Client client)
        {
            using (IDataContextWrapper dataContext = _dataContextLocator())
            {
                var clientRecord = dataContext.Table <Client>().FirstOrDefault(x => x.Id == client.Id);
                clientRecord.Group.Clients.Remove(clientRecord); //automatically detach client from group
                dataContext.SubmitChanges();
            }

            Groups.First(x => x.Id == client.GroupId).Clients.Remove(client);
        }
Example #15
0
 public void Delete(Client client)
 {
     using (IDataContextWrapper dataContext = _dataContextLocator())
     {
         var clientEntity = dataContext.Table <Client>().First(x => x.Id == client.Id);
         IsoStorageHelper.DeleteFile(clientEntity.Photo);
         dataContext.DeleteOnSubmit(clientEntity);
         dataContext.SubmitChanges();
     }
     Clients.Remove(client);
 }
Example #16
0
 protected override void OnActivate()
 {
     base.OnActivate();
     using (IDataContextWrapper dataContext = _dataContextLocator())
     {
         Client client = dataContext.Table <Client>().FirstOrDefault(x => x.Id == ClientID);
         if (client != null)
         {
             FullName = client.FullName;
             Photo    = IsoStorageHelper.PhotoFromFile(client.Photo);
         }
     }
 }
        public void DeleteGroup(Group group)
        {
            using (IDataContextWrapper dataContext = _dataContextLocator())
            {
                Group groupRecord = dataContext.Table <Group>().FirstOrDefault(x => x.Id == group.Id);
                dataContext.DeleteOnSubmit(groupRecord);
                dataContext.Table <Client>().Apply(x => { if (x.GroupId == group.Id)
                                                          {
                                                              x.Group = null;
                                                          }
                                                   });
                dataContext.SubmitChanges();
            }

            Groups.Remove(group);
        }
Example #18
0
 public void Add()
 {
     if (SelectedClient != null)
     {
         using (IDataContextWrapper dataContext = _dataContextLocator())
         {
             Group group = dataContext.Table <Group>().First(g => g.Id == GroupId);
             dataContext.Table <Client>().First(c => c.Id == SelectedClient.Id).Group = group;
             dataContext.SubmitChanges();
         }
         GoBack();
     }
     else
     {
         MessageBox.Show("Client must be selected.");
     }
 }
Example #19
0
        private void RefreshClients(System.Action callback = null)
        {
            //potentially time consuming loading
            Task.Run(() =>
            {
                lock (_syncRoot)
                {
                    Clients.Clear();
                }

                using (IDataContextWrapper dataContext = _dataContextLocator())
                {
                    var clientsList = dataContext.Table <Client>().AsEnumerable();

                    clientsList.Apply(c =>
                    {
                        if (c.Longitude != null && c.Latitude != null)
                        {
                            c.Distance = geoLocation.CalculateDistance(currentPosition, (double)c.Latitude, (double)c.Longitude);
                        }
                    });

                    if (BeginDate.Ticks > 0)
                    {
                        clientsList = clientsList.Where(c => c.Birthdate >= BeginDate);
                    }
                    if (EndDate.Ticks > 0)
                    {
                        clientsList = clientsList.Where(c => c.Birthdate <= EndDate);
                    }
                    if (Distance < Int32.MaxValue)
                    {
                        clientsList = clientsList.Where(c => c.Distance <= Distance);
                    }

                    lock (_syncRoot)
                    {
                        Clients = new BindableCollection <Client>(clientsList);
                        if (callback != null)
                        {
                            callback();
                        }
                    }
                }
            });
        }
 public void Save()
 {
     if (!string.IsNullOrWhiteSpace(GroupName))
     {
         using (IDataContextWrapper dataContext = _dataContextLocator())
         {
             dataContext.InsertOnSubmit(new Group()
             {
                 GroupName = this.GroupName
             });
             dataContext.SubmitChanges();
         }
         GoBack();
     }
     else
     {
         MessageBox.Show("Group must have GroupName");
     }
 }
Example #21
0
        private void RefreshClients(string searchPhrase = null)
        {
            //potentially time consuming loading
            Task.Run(() =>
            {
                lock (_syncRoot)
                {
                    Clients.Clear();
                    _currentSearchPhrase = searchPhrase;
                }

                using (IDataContextWrapper dataContext = _dataContextLocator())
                {
                    DataLoadOptions options = new DataLoadOptions();
                    options.LoadWith <Client>(c => c.Group);
                    dataContext.LoadOptions = options;

                    BindableCollection <Client> clientsList;
                    if (searchPhrase != null)
                    {
                        clientsList = new BindableCollection <Client>(dataContext.Table <Client>()
                                                                      .Where(x => x.Surname.Contains(searchPhrase) || x.Forename.Contains(searchPhrase))
                                                                      .ToList()
                                                                      .OrderBy(c => c.FullName));
                    }
                    else
                    {
                        clientsList = new BindableCollection <Client>(dataContext.Table <Client>().ToList().OrderBy(c => c.FullName));
                    }

                    lock (_syncRoot)
                    {
                        if (searchPhrase == _currentSearchPhrase)
                        {
                            Clients = clientsList;
                        }
                    }
                }
            });
        }
        private void RefreshGroups()
        {
            Task.Run(() =>
            {
                lock (_syncRoot)
                {
                    using (IDataContextWrapper dataContext = _dataContextLocator())
                    {
                        Groups.Clear();

                        DataLoadOptions options = new DataLoadOptions();
                        options.LoadWith <Group>(g => g.Clients);
                        dataContext.LoadOptions = options;

                        dataContext.Table <Group>()
                        .OrderBy(x => x.GroupName)
                        .ToList()
                        .ForEach(g => Groups.Add(g));
                    }
                }
            });
        }
        public void Setup()
        {
            _mockEmployeeDataContext = new Mock <IEmployeeDataContext>();
            _stubDataContextWrapper  = new StubDataContextWrapper(_mockEmployeeDataContext.Object);
            _employeeRepository      = new EmployeeRepository(_stubDataContextWrapper);

            var employee1 = new EmployeeEntity {
                Id = 1, FirstName = "John", LastName = "Smith", StartDate = new DateTime(2013, 01, 10)
            };
            var employee2 = new EmployeeEntity {
                Id = 2, FirstName = "Frank", LastName = "Smith", StartDate = new DateTime(2013, 01, 15)
            };
            var employee3 = new EmployeeEntity {
                Id = 3, FirstName = "Stan", LastName = "Johnson", StartDate = new DateTime(2013, 01, 20)
            };

            var employees = new List <EmployeeEntity> {
                employee1, employee2, employee3
            };

            _mockEmployeeDataContext.Setup(x => x.Employees()).Returns(new StubEmployeeTable(employees));
        }
Example #24
0
        private void UpdateConversation(MessageModel message, IDataContextWrapper context)
        {
            // Update the conversation object corresponding to the message
            MessageModel existingConversation = null;
            IQueryable<MessageModel> existingConversationIQueryable = null;

            Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start find existing conversation"));

            if (message.ConversationId != Guid.Empty && existingConversation == null)
            {
                existingConversationIQueryable = from m in context.Table<MessageModel>()
                                                 where m.ConversationId == message.ConversationId && m.MessageType == MessageType.Conversation
                                                 select m;

                existingConversation = existingConversationIQueryable.FirstOrDefault<MessageModel>();

                if (existingConversation != null)
                {
                    if (existingConversation.LastUpdateTime < message.LastUpdateTime)
                    {
                        existingConversation.LastUpdateTime = message.LastUpdateTime;
                        existingConversation.TextMessage = message.TextMessage;
                    }

                    if (existingConversation.LastReadTime.Ticks < message.LastUpdateTime.Ticks)
                    {
                        if (!existingConversation.UnreadCount.HasValue || message.Sender.Id == this.userSettings.Me.Id)
                        {
                            existingConversation.UnreadCount = 0;
                        }
                        else
                        {
                            existingConversation.UnreadCount = existingConversation.UnreadCount.Value + 1;
                        }
                    }
                }
                else
                {
                    existingConversation = new MessageModel(message);
                    existingConversation.MessageId = Guid.Empty;
                    existingConversation.ClientMessageId = Guid.Empty;
                    existingConversation.MessageType = MessageType.Conversation;
                    existingConversation.MessageFlags = 0;
                    existingConversation.Image = null;
                    existingConversation.LastUpdateTime = message.LastUpdateTime;
                    existingConversation.TextMessage = message.TextMessage;
                    existingConversation.LastReadTime = new DateTime(1970, 1, 1);
                    existingConversation.UnreadCount = 1;

                    context.InsertOnSubmit<MessageModel>(existingConversation);
                }
            }
        }
Example #25
0
        private void SaveSingleTaskMessage(MessageModel message, List<UserModel> users, IDataContextWrapper context = null)
        {
            if (context == null)
            {
                context = this.dataContext;
            }

            MessageModel taskInfoMessage = null;
            lock (this)
            {
                try
                {
                    if (!message.IsTaskMessage.Value)
                    {
                        return;
                    }

                    // Add the sender/recipient if they are not inthe contact list already
                    if (!this.ContainsContact(message.Sender) && !users.Contains(message.Sender))
                    {
                        this.AddContact(message.Sender, users);
                        users.Add(message.Sender);
                    }

                    if (!this.ContainsContact(message.Recipient) && !users.Contains(message.Recipient))
                    {
                        this.AddContact(message.Recipient, users);
                        users.Add(message.Recipient);
                    }

                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "end find existing conversation"));

                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start find existing message"));

                    // Task exists
                    // Task exists and deleted
                    // Task doesn't exist
                    // If the message already exists, delete it and reinsert it
                    // The reason is that the server version is more authoritative.
                    IQueryable<MessageModel> existingInfoMessageQuery = from m in context.Table<MessageModel>()
                                                                        where
                                                                        (m.TaskId == message.ClientMessageId)
                                                                        select m;
                    taskInfoMessage = existingInfoMessageQuery.FirstOrDefault<MessageModel>();
                    bool shouldInsertTaskInfoMessage = false;
                    if (taskInfoMessage == null)
                    {
                        shouldInsertTaskInfoMessage = true;
                        taskInfoMessage = new MessageModel();
                        taskInfoMessage.ConversationId = message.ConversationId;
                        taskInfoMessage.MessageId = message.MessageId;
                        taskInfoMessage.ClientMessageId = Guid.NewGuid();
                        taskInfoMessage.Sender = message.Sender;
                        taskInfoMessage.Recipient = message.Recipient;
                        taskInfoMessage.SenderId = taskInfoMessage.Sender.Id;
                        taskInfoMessage.RecipientId = taskInfoMessage.Recipient.Id;
                        taskInfoMessage.MessageType = MessageType.Message;
                        taskInfoMessage.MessageFlags = MessageFlags.TaskInfo;
                        taskInfoMessage.TaskId = message.ClientMessageId;
                    }

                    taskInfoMessage.PostDateTimeUtcTicks = message.PostDateTimeUtcTicks;
                    taskInfoMessage.ClientVisibleTimeTicks = DateTime.UtcNow.Ticks;
                    taskInfoMessage.LastReadTime = new DateTime(1970, 1, 1);
                    taskInfoMessage.LastUpdateTime = DateTime.Now;

                    // If the message already exists, delete it and reinsert it
                    // The reason is that the server version is more authoritative.
                    IQueryable<MessageModel> existingMessages = from m in context.Table<MessageModel>()
                                                                where
                                                                (m.ClientMessageId == message.ClientMessageId)
                                                                select m;
                    MessageModel existingMessage = existingMessages.FirstOrDefault<MessageModel>();

                    if (existingMessage != null && (!message.IsTaskDeleted.HasValue || !message.IsTaskDeleted.Value))
                    {
                        if (existingMessage.PostDateTimeUtcTicks > message.PostDateTimeUtcTicks)
                        {
                            return;
                        }

                        existingMessage.PostDateTimeUtcTicks = message.PostDateTimeUtcTicks - 1;
                        if (message.Sender.Id != this.userSettings.Me.Id)
                        {
                            existingMessage.ClientVisibleTimeTicks = DateTime.UtcNow.Ticks;
                        }

                        if (message.Sender.Id == this.userSettings.Me.Id)
                        {
                            existingMessage.LastReadTime = (new DateTime(message.PostDateTimeUtcTicks, DateTimeKind.Utc)).ToLocalTime();
                        }

                        existingMessage.TaskName = message.TaskName;
                        //existingMessage.IsCompleted = message.IsCompleted;
                        if (existingMessage.RecipientId == 0)
                        {
                            existingMessage.RecipientId = message.RecipientId;
                        }

                        existingMessage.LastTaskUpdaterId = message.SenderId;

                        taskInfoMessage.TextMessage = taskInfoMessage.SenderId == UserSettingsModel.Instance.Me.Id ? string.Format(Strings.YouUpdatedTask, message.TaskName, message.Sender.Name) : string.Format(Strings.HasUpdatedTask, message.Sender.Name, message.TaskName);

                        foreach (var m in message.TaskItemList)
                        {
                            IQueryable<MessageModel> existingTaskItemQuery = from item in context.Table<MessageModel>()
                                                                             where
                                                                             (item.ClientMessageId == m.ClientMessageId)
                                                                             select item;

                            MessageModel existingTaskItem = existingTaskItemQuery.FirstOrDefault<MessageModel>();
                            if (m.IsTaskDeleted.HasValue && m.IsTaskDeleted.Value)
                            {
                                if (existingTaskItem != null)
                                {
                                    context.DeleteOnSubmit<MessageModel>(existingTaskItem);
                                }

                                continue;
                            }

                            if (existingTaskItem == null)
                            {
                                m.LastReadTime = new DateTime(1970, 1, 1);
                                m.PollMessageId = message.ClientMessageId;
                                m.MessageType = MessageType.Message;
                                context.InsertOnSubmit<MessageModel>(m);
                                continue;
                            }

                            existingTaskItem.ClientVisibleTimeTicks = DateTime.UtcNow.Ticks;
                            if (0 != string.Compare(existingTaskItem.TaskName, m.TaskName, StringComparison.OrdinalIgnoreCase) ||
                                existingTaskItem.IsCompleted != m.IsCompleted)
                            {
                                existingTaskItem.TaskName = m.TaskName;
                                existingTaskItem.IsCompleted = m.IsCompleted;
                                existingTaskItem.LastTaskUpdaterId = message.SenderId;
                            }

                            if (0 != StringComparer.OrdinalIgnoreCase.Compare(existingTaskItem.ItemOrder, m.ItemOrder))
                            {
                                existingTaskItem.ItemOrder = m.ItemOrder;
                            }
                        }
                    }
                    else if (existingMessage != null)
                    {
                        if (existingMessage.TaskItemList != null)
                        {
                            foreach (var m in existingMessage.TaskItemList)
                            {
                                context.Attach<MessageModel>(m);
                                context.DeleteOnSubmit<MessageModel>(m);
                            }
                        }

                        context.DeleteOnSubmit<MessageModel>(existingMessage);

                        taskInfoMessage.TextMessage = taskInfoMessage.SenderId == UserSettingsModel.Instance.Me.Id ? string.Format(Strings.YouDeletedTask, message.TaskName, message.Sender.Name) : string.Format(Strings.HasDeletedTask, message.Sender.Name, existingMessage.TaskName, message.TaskName);
                    }
                    else if (existingMessage == null && message.IsTaskDeleted.HasValue && message.IsTaskDeleted.Value)
                    {
                        taskInfoMessage.TextMessage = taskInfoMessage.SenderId == UserSettingsModel.Instance.Me.Id ? string.Format(Strings.YouDeletedTask, message.TaskName, message.Sender.Name) : string.Format(Strings.HasDeletedTask, message.Sender.Name, existingMessage.TaskName, message.TaskName);
                    }
                    else if (existingMessage == null && (!message.IsTaskDeleted.HasValue || !message.IsTaskDeleted.Value))
                    {
                        message.ClientVisibleTimeTicks = DateTime.UtcNow.Ticks;
                        message.ConversationId = Guid.Empty;
                        message.MessageId = Guid.NewGuid();
                        message.LastReadTime = new DateTime(1970, 1, 1);

                        context.InsertOnSubmit<MessageModel>(message);
                        if (message.TaskItemList != null)
                        {
                            foreach (var m in message.TaskItemList)
                            {
                                if (m.ClientMessageId != Guid.Parse("bbaf9b96-b875-4a23-97ac-77912ca74832"))
                                {
                                    m.LastReadTime = new DateTime(1970, 1, 1);
                                    context.InsertOnSubmit<MessageModel>(m);
                                }
                            }
                        }

                        taskInfoMessage.TextMessage = taskInfoMessage.SenderId == UserSettingsModel.Instance.Me.Id ? string.Format(Strings.YouSharedTask, message.TaskName, message.Sender.Name) : string.Format(Strings.HasSharedTask, message.Sender.Name, message.TaskName);
                    }

                    if (shouldInsertTaskInfoMessage)
                    {
                        //context.InsertOnSubmit<MessageModel>(taskInfoMessage);
                        //this.UpdateConversation(taskInfoMessage, context);
                    }

                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "end find existing message"));

                    context.SubmitChanges();
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "Error in DataSync::SaveSingleTaskMessage for task ", message.TaskName));
                    this.dataContext.Dispose();
                    this.dataContext = new DataContextWrapper<YapperDataContext>();
                }
            }

            Messenger.Default.Send<NewMessageEvent>(new NewMessageEvent() { Message = taskInfoMessage, IsPush = false });
        }
Example #26
0
        private void SaveSingleMessage(MessageModel message, List<UserModel> users, IDataContextWrapper context = null)
        {
            if (context == null)
            {
                context = this.dataContext;
            }

            lock (this)
            {
                try
                {
                    if (message.IsImage)
                    {
                        this.WriteImageToIsoStorage(message.MessageId, message.Image);
                    }

                    // Add the sender/recipient if they are not inthe contact list already
                    if (!this.ContainsContact(message.Sender) && !users.Contains(message.Sender))
                    {
                        this.AddContact(message.Sender, users);
                        users.Add(message.Sender);
                    }

                    if (!this.ContainsContact(message.Recipient) && !users.Contains(message.Recipient))
                    {
                        this.AddContact(message.Recipient, users);
                        users.Add(message.Recipient);
                    }

                    this.UpdateConversation(message, context);
                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "end find existing conversation"));

                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start find existing message"));
                    // If the message already exists, delete it and reinsert it
                    // The reason is that the server version is more authoritative.
                    IQueryable<MessageModel> existingMessages = from m in context.Table<MessageModel>()
                                                                where
                                                                (m.ConversationId == message.ConversationId && m.MessageId == message.MessageId) ||
                                                                (m.ClientMessageId == message.ClientMessageId && m.MessageId == Guid.Empty)
                                                                select m;

                    // Delete the message only if it's a quick send message
                    // otherwise update it
                    MessageModel existingMessage = existingMessages.FirstOrDefault<MessageModel>();
                    if (existingMessage != null && existingMessage.MessageId == Guid.Empty)
                    {
                        message.LastReadTime = existingMessage.LastReadTime;
                        if (message.IsPollMessage)
                        {
                            message.MyPollResponse = existingMessage.MyPollResponse;
                        }

                        message.ClientVisibleTimeTicks = existingMessage.ClientVisibleTimeTicks;
                        context.DeleteOnSubmit(existingMessage);
                        existingMessage = null;
                    }

                    Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "end find existing message"));

                    // Insert it only if the existing message is null
                    if (existingMessage == null)
                    {
                        context.InsertOnSubmit<MessageModel>(message);
                    }

                    context.SubmitChanges();
                }
                catch (Exception ex)
                {
                    this.dataContext.Dispose();
                    this.dataContext = new DataContextWrapper<YapperDataContext>();
                }
            }
        }
Example #27
0
        private void SavePollResponse(MessageModel message, IDataContextWrapper context = null)
        {
            if (context == null)
            {
                context = this.dataContext;
            }

            lock (this)
            {
                try
                {
                    // If this is a poll response message, update the last update time for the poll message
                    if (message.IsPollResponseMessage && message.IsMine && message.PollMessageId.HasValue)
                    {
                        Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start update my poll response"));
                        MessageModel pollMessage = this.GetMessage(message.PollMessageId.Value);

                        if (pollMessage != null && pollMessage.LastUpdateTime < message.LastUpdateTime)
                        {
                            pollMessage.LastUpdateTime = message.LastUpdateTime;
                        }

                        if (pollMessage != null)
                        {
                            pollMessage.MyPollResponse = message.PollResponse;
                        }

                        Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start update my poll response"));
                    }

                    if (message.IsPollResponseMessage && !message.IsGroup && !message.IsMine && message.PollMessageId.HasValue)
                    {
                        Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start update other poll response"));
                        MessageModel pollMessage = this.GetMessage(message.PollMessageId.Value);

                        if (pollMessage != null && pollMessage.LastUpdateTime < message.LastUpdateTime)
                        {
                            pollMessage.LastUpdateTime = message.LastUpdateTime;
                        }

                        if (pollMessage != null)
                        {
                            pollMessage.OtherPollResponse = message.PollResponse;
                        }

                        Debug.WriteLine(string.Format("{0} {1} {2}", DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss.fff tt"), "DataSync::MessagesDownloaded", "start update other poll response"));
                    }

                    this.UpdateConversation(message, context);

                    var existingMessages = from m in context.Table<MessageModel>()
                                           where
                                           (m.ConversationId == message.ConversationId && m.MessageId == message.MessageId) ||
                                           (m.ConversationId == message.ConversationId && m.ClientMessageId == message.ClientMessageId && m.MessageId == Guid.Empty)
                                           select m;

                    // Delete the message only if it's a quick send message
                    // otherwise update it
                    MessageModel existingMessage = existingMessages.FirstOrDefault<MessageModel>();

                    if (existingMessage != null && existingMessage.MessageId == Guid.Empty)
                    {
                        message.LastReadTime = existingMessage.LastReadTime;
                        message.ClientVisibleTimeTicks = existingMessage.ClientVisibleTimeTicks;
                        context.DeleteOnSubmit(existingMessage);
                        existingMessage = null;
                    }

                    if (existingMessage == null)
                    {
                        context.InsertOnSubmit<MessageModel>(message);
                    }

                    context.SubmitChanges();
                }
                catch (Exception ex)
                {
                    this.dataContext.Dispose();
                    this.dataContext = new DataContextWrapper<YapperDataContext>();
                }
            }
        }
Example #28
0
 public void RefreshClients()
 {
     using (IDataContextWrapper dataContext = _dataContextLocator())
         ClientsList = new BindableCollection <Client>(dataContext.Table <Client>().Where(c => c.GroupId == null).ToList().OrderBy(c => c.FullName));
 }
 public EventPlayerRepository(IDataContextWrapper dataContext)
 {
     _dataContext = dataContext;
 }
 public EmployeeRepository(IDataContextWrapper dataContextWrapper)
 {
     _dataContextWrapper = dataContextWrapper;
 }
Example #31
0
 public RoundPrizeRepository(IDataContextWrapper dataContext)
 {
     _dataContext = dataContext;
 }
        public void Create_ExistingEmail_Exception(
            IDataContextWrapper db,
            CustomerCreate data,
            CustomerManager sut)
        {
            data.Email = db.Set<Customer>().Select(x => x.Email).First();

            Assert.Throws<CustomerManager.EmailAlreadyExistsException>(() =>
                sut.Create(data));
        }
Example #33
0
 public RecipeRepository(IDataContextWrapper dataContextWrapper)
 {
     _dataContextWrapper = dataContextWrapper;
 }
Example #34
0
        /// <summary>
        /// Get the list of users from local db
        /// </summary>
        /// <returns></returns>
        public UserModel GetUser(int userId, IDataContextWrapper context = null)
        {
            if (context == null)
            {
                context = this.dataContext;
            }

            lock (this)
            {
                if (this.userCache.ContainsKey(userId))
                {
                    return this.userCache[userId];
                }

                var dbUsers = from u in context.Table<UserModel>()
                              where u.Id == userId
                              select u;

                if (dbUsers.Count<UserModel>() > 0)
                {
                    UserModel user = dbUsers.FirstOrDefault<UserModel>();
                    this.userCache.Add(user.Id, user);
                    return user;
                }

                return null;
            }
        }
 public PlayerPrizeRepository(IDataContextWrapper dataContext)
 {
     _dataContext = dataContext;
 }
Example #36
0
 public GameLog(IDataContextWrapper dataContext)
 {
     _dataContext = dataContext;
 }