Exemplo n.º 1
0
 public RoomieCalendarEvent([NotNull] IUser organizer,
                            [NotNull] ICalendarEventOccurence occurence,
                            [CanBeNull] IChatInfo chatInfo)
 {
     this._organizer = organizer;
     this._occurence = occurence;
     this.ChatInfo   = chatInfo;
 }
        public async Task <string> GetChatMessageAsync(IUser user, ICalendarEventOccurence occurence)
        {
            var room = await _roomAccessor.GetCurrentRoomAsync();

            // TODO DEV-3 make this localizable with https://tracker.seitenbau.net/browse/DEV-3
            const string messageTemplate = "Hi {0}, es geht um den Termin am {1} um {2} im Raum \"{3}\".";
            var          message         = string.Format(messageTemplate,
                                                         user.FirstName,
                                                         occurence.From.ToShortDateString(),
                                                         occurence.From.ToShortTimeString(),
                                                         room.NiceName);

            return(message);
        }
        public async Task <IChatInfo> GetChatInfoAsync(IUser user, ICalendarEventOccurence occurence)
        {
            if (string.IsNullOrEmpty(user.UserName))
            {
                return(null);
            }

            var link =
                $"https://go.rocket.chat/room?host={_rocketChatConfiguration.Value.Host}&rid={user.UserName}&path=direct/{user.UserName}";

            var message = await _chatMessageService.GetChatMessageAsync(user, occurence);

            var hint = await _chatMessageService.GetChatHintAsync(user);

            return(new ChatInfo(link, message, hint));
        }