Esempio n. 1
0
        private async Task Send()
        {
            var userNameTask = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserNameKeyName);
            var userImgTask  = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserImgKeyName);
            var userIdTask   = LocalStorageService.GetStringAsync(LocalStorageAttributes.UserIdKeyName);

            await Task.WhenAll(userNameTask, userIdTask, userImgTask);

            var user = new ShortUserInfoContract
            {
                UserId   = userIdTask.Result,
                UserName = userNameTask.Result,
                UserImg  = userImgTask.Result,
            };

            var message = new CreateMessageContract
            {
                Content = messageInput,
                User    = user,
            };

            await Http.PostAsync($"api/messages/{ChatId}", message);

            messageInput = string.Empty;
        }
Esempio n. 2
0
        /// <summary>
        /// Converts <see cref="MessageModel"/> model to <seealso cref="MessageContract"/> contract.
        /// </summary>
        /// <param name="model">Message model.</param>
        /// <returns><see cref="MessageContract"/> contract.</returns>
        public static MessageContract ToContract(this MessageModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(MessageModel));
            }

            var user = new ShortUserInfoContract()
            {
                UserName = model.UserName
            };

            return(new MessageContract
            {
                Id = model.Id,
                Content = model.Content,
                IsRead = model.IsRead,
                CreatedDate = model.CreatedDate,
                User = user,
                Chat = model.Chat?.ToShortInfoContract()
            });
        }