public MessagesResponse Delete(Messages request)
        {
            Bm2s.Data.Common.BLL.User.Message item = Datas.Instance.DataStorage.Messages[request.Message.Id];
              item.DeletionDate = DateTime.Now;
              Datas.Instance.DataStorage.Messages[item.Id] = item;

              MessagesResponse response = new MessagesResponse();
              response.Messages.Add(request.Message);
              return response;
        }
        public MessagesResponse Get(Messages request)
        {
            MessagesResponse response = new MessagesResponse();
              List<Bm2s.Data.Common.BLL.User.Message> items = new List<Data.Common.BLL.User.Message>();
              if (!request.Ids.Any())
              {
            items.AddRange(Datas.Instance.DataStorage.Messages.Where(item =>
              (string.IsNullOrWhiteSpace(request.Body) || item.Body.ToLower().Contains(request.Body.ToLower())) &&
              (!request.IsShortMessage || item.IsShortMessage) &&
              (request.SendDate.HasValue || item.SendDate >= request.SendDate) &&
              (string.IsNullOrWhiteSpace(request.Subject) || item.Subject.ToLower().Contains(request.Subject.ToLower())) &&
              (request.UserId == 0 || item.UserId == request.UserId) &&
              (!request.Date.HasValue || (request.Date >= item.SendDate && (!item.DeletionDate.HasValue || request.Date < item.DeletionDate.Value)))
              ));
              }
              else
              {
            items.AddRange(Datas.Instance.DataStorage.Messages.Where(item => request.Ids.Contains(item.Id)));
              }

              var collection = (from item in items
                         select new Bm2s.Poco.Common.User.Message(){
                           Body = item.Body,
                           Id= item.Id,
                           IsShortMessage = item.IsShortMessage,
                           SendDate = item.SendDate,
                           Subject = item.Subject,
                           User = new UsersService().Get(new Users() { Ids = new List<int>() { item.UserId } }).Users.FirstOrDefault()
                         }).AsQueryable().OrderBy(request.Order, !request.DescendingOrder);

              response.ItemsCount = collection.Count();
              if(request.PageSize>0)
              {
            response.Messages.AddRange(collection.Skip((request.CurrentPage - 1) * request.PageSize).Take(request.PageSize));
              }
              else
              {
            response.Messages.AddRange(collection);
              }

              return response;
        }
        public MessagesResponse Post(Messages request)
        {
            if (request.Message.Id > 0)
              {
            Bm2s.Data.Common.BLL.User.Message item = Datas.Instance.DataStorage.Messages[request.Message.Id];
            item.Body = request.Message.Body;
            item.IsShortMessage = request.Message.IsShortMessage;
            item.SendDate = request.Message.SendDate;
            item.Subject = request.Message.Subject;
            item.UserId = request.Message.User.Id;
              }
              else
              {
            Bm2s.Data.Common.BLL.User.Message item = new Data.Common.BLL.User.Message()
            {
              Body = request.Message.Body,
              IsShortMessage = request.Message.IsShortMessage,
              SendDate = request.Message.SendDate,
              Subject = request.Message.Subject,
              UserId = request.Message.User.Id
            };

            Datas.Instance.DataStorage.Messages.Add(item);
            request.Message.Id = item.Id;
              }

              MessagesResponse response = new MessagesResponse();
              response.Messages.Add(request.Message);
              return response;
        }