public static byte[] ExportLogByDateToByteArray(IbaCmsDbContext cmsDb, IBAEntities1 ibaDb, DateTime?from, DateTime?to) { var msgs = cmsDb.CmsMessages.Where(m => m.Status > CmsMessageStatus.Outbox).AsQueryable(); if (from.HasValue) { msgs = msgs.Where(m => m.Created >= from.Value); } if (to.HasValue) { msgs = msgs.Where(m => m.Created <= to.Value); } using (var memoryStream = new MemoryStream()) { var streamWriter = new StreamWriter(memoryStream); var csvWriter = new CsvWriter(streamWriter); foreach (var msg in msgs.ToList()) { var export = MsgToExportLog(msg, ibaDb); WriteMessage(csvWriter, export); } streamWriter.Flush(); memoryStream.Position = 0; return(memoryStream.ToArray()); } }
public static ContentLibraryResponseModel RequestContent(IbaCmsDbContext db, ContentLibraryRequestModel model) { var response = new ContentLibraryResponseModel(); CheckTimedContent(db); var dbContent = db.ContentLibraries.Where(c => c.Status == ContentStatus.Active).OrderByDescending(c => c.Created).AsQueryable(); response.TotalRecords = dbContent.Count(); if (model.Start > 0) { dbContent = dbContent.Skip(model.Start); } if (model.Length <= 0) { model.Length = DefaultPageSize; } dbContent = dbContent.Take(model.Length); foreach (var content in dbContent) { var item = new ContentLibraryItemsResponseModel() { Id = content.Id, ThumbnailUrl = content.ImageUrl ?? "", Title = content.Title, Precis = content.Precis ?? "", ContentType = content.ContentType, Url = content.Url, Featured = content.Featured, CreatedDate = content.Created.HasValue ? DateTime.SpecifyKind(content.Created.Value, DateTimeKind.Utc) : content.Created }; response.Items.Add(item); } return(response); }
public static bool ProcessOneMessage(IbaCmsDbContext cmsDb, P2PMessage msg) { var senderId = msg.SenderId; var idToSendTo = msg.Thread.InitialRecipientId == senderId ? msg.Thread.InitialSenderId : msg.Thread.InitialRecipientId; var deviceOwners = cmsDb.DeviceOwners.Where(r => r.IbaId == idToSendTo); var count = 0; foreach (var owner in deviceOwners) { var appuserMessage = new AppP2PMessage { Created = DateTime.UtcNow, DeviceOwner = owner, Message = msg }; foreach (var device in owner.Devices.Where(d => !d.PushToken.IsNullOrWhiteSpace())) { //var push = new PushMessageQueue //{ // Created = DateTime.UtcNow, // Device = device, // AppP2PMessage = appuserMessage //}; //appuserMessage.Queued.Add(push); } count++; cmsDb.AppP2PMessages.Add(appuserMessage); SendPushMessage(appuserMessage); } msg.DeliveredTime = DateTime.UtcNow; return(count > 0); }
public static bool HideMessageThread(IbaCmsDbContext cmsDb, int threadId, int myId) { var thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialSenderId == threadId && r.InitialRecipientId == myId); if (thread == null) { thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialRecipientId == threadId && r.InitialSenderId == myId); } if (thread == null) { throw new HttpException(404, "No chat history found"); } if (thread.InitialSenderId == myId) { thread.InitialSenderDeletionDate = DateTime.UtcNow; } else if (thread.InitialRecipientId == myId) { thread.InitialRecipientDeletionDate = DateTime.UtcNow; } else { throw new HttpException(401, "User cannot delete this thread."); } try { cmsDb.SaveChanges(); } catch (Exception e) { return(false); } return(true); }
public static bool AddMessage(IbaCmsDbContext db, StoreMessageModel model) { try { var user = db.Users.FirstOrDefault(u => u.Id == model.UserId); var dbMessage = new CmsMessage { Url = model.Url ?? "", Created = DateTime.UtcNow, MessageType = model.MessageType, Text = model.Text ?? "", Title = model.Title, Sender = user, Recipients = model.Recipients, Status = CmsMessageStatus.Draft, UrlOnly = model.UrlOnly, TimeZone = model.TimeZone, SendDate = model.SendDate.HasValue ? model.SendDate.Value.ToUniversalTime() : (DateTime?)null }; db.CmsMessages.Add(dbMessage); db.SaveChanges(); model.NewId = dbMessage.Id; } catch (Exception) { return(false); } return(true); }
public static bool ProcessOneMessage(IbaCmsDbContext cmsDb, CmsMessage msg) { List <DeviceOwner> deviceOwners; if (msg.Recipients.IsNullOrWhiteSpace()) { deviceOwners = cmsDb.DeviceOwners.ToList(); } else { var recipients = JsonConvert.DeserializeObject <List <StoreMessageRecipients> >(msg.Recipients); var recipientList = recipients.Select(recipient => recipient.Id).ToList(); deviceOwners = cmsDb.DeviceOwners.Where(d => recipientList.Contains(d.IbaId)).ToList(); } var count = 0; foreach (var owner in deviceOwners) { var appuserMessage = new AppUserMessage { Created = DateTime.UtcNow, DeviceOwner = owner, Message = msg }; count++; cmsDb.AppUserMessages.Add(appuserMessage); } msg.Status = CmsMessageStatus.Distributed; msg.Created = DateTime.UtcNow; msg.TotalRecipients = count; return(count > 0); }
public static bool SetMessageToRead(IbaCmsDbContext cmsDb, int myId, int messageId) { try { var message = cmsDb.UserMessages.SingleOrDefault(r => r.P2PMessageId == (long)messageId); if (message != null) { if (message.Thread.isInvolvedInThread(myId) && message.SenderId != myId) { message.ReadTime = DateTime.UtcNow; if (message.DeliveredTime == null) { message.ReadTime = message.ReadTime; } cmsDb.SaveChanges(); return(true); } } } catch (Exception e) { return(false); } return(false); }
public static List <ConferenceEventResponseModel> GetEventsForConferenceById(IbaCmsDbContext db, IBAEntities1 ibaDb, int conferenceId, decimal userId, int take = 20, int skip = 0) { var result = new List <ConferenceEventResponseModel>(); var acceptableTypes = new List <decimal> { 1, 2, 3, 4, 5, 6, 7, 8 }; var conferenceFunctions = from cf in ibaDb.conf_function join ta in ibaDb.conf_function_ticket_allocation.DefaultIfEmpty() on new { ConferenceId = cf.conference_id, FunctionId = cf.id, GuestId = false, MemberId = userId } equals new { ConferenceId = (decimal)ta.ConferenceID, FunctionId = (decimal)ta.FunctionID, GuestId = ta.GuestID.HasValue, MemberId = (decimal)ta.MemberID } into temp from e in temp.DefaultIfEmpty() where cf.conference_id == conferenceId && acceptableTypes.Contains(cf.type_id) && cf.status_id == 2 select new { cf.id, cf.function_start, cf.function_end, cf.title, cf.location, cf.description, Attending = e != null }; var conferenceRooms = db.EventLocations.Where(r => r.ConferenceId == conferenceId).ToList(); foreach (var eventLocation in conferenceRooms) { var eventRoom = eventLocation.LocationName; var conferenceFunctionsForRoom = conferenceFunctions.Where(cf => cf.location == eventRoom); foreach (var conferenceFunction in conferenceFunctionsForRoom) { var start = new DateTime(conferenceFunction.function_start.Year, conferenceFunction.function_start.Month, conferenceFunction.function_start.Day, conferenceFunction.function_start.Hour, conferenceFunction.function_start.Minute, conferenceFunction.function_start.Second, DateTimeKind.Utc); var end = new DateTime(conferenceFunction.function_end.Year, conferenceFunction.function_end.Month, conferenceFunction.function_end.Day, conferenceFunction.function_end.Hour, conferenceFunction.function_end.Minute, conferenceFunction.function_end.Second, DateTimeKind.Utc); result.Add(new ConferenceEventResponseModel { ConferenceId = conferenceId, StartTime = start, // conferenceFunction.function_start, EndTime = end, //conferenceFunction.function_end, EventItemId = (int)conferenceFunction.id, Title = conferenceFunction.title, TranslatedTitle = eventLocation.TranslatedTitle, RoomName = conferenceFunction.location, RoomCentreX = eventLocation.CentreX, RoomCentreY = eventLocation.CentreY, Lat = eventLocation.Lat, Long = eventLocation.Long, Floor = eventLocation.Floor, SubTitle = conferenceFunction.description, Attending = conferenceFunction.Attending, BuildingId = eventLocation.Building.ScheduleEventBuildingId }); } } var existingLocations = conferenceRooms.Select(r => r.LocationName); var allLocations = conferenceFunctions.Select(r => r.location).Where(t => !string.IsNullOrEmpty(t)); return(result.OrderBy(r => r.StartTime).Skip(skip).Take(take).ToList()); }
public static void UpdateMessage(IbaCmsDbContext db, StoreMessageModel model, CmsMessage msg) { msg.Url = model.Url ?? ""; msg.MessageType = model.MessageType; msg.Text = model.Text ?? ""; msg.Title = model.Title; msg.Recipients = model.Recipients; msg.UrlOnly = model.UrlOnly; msg.SendDate = model.SendDate.HasValue ? model.SendDate.Value.ToUniversalTime() : (DateTime?)null; msg.Status = CmsMessageStatus.Draft; db.SaveChanges(); }
public static void CreateScheduleEventLocationsIfDoesntExist(IbaCmsDbContext db, List <ConferenceRoomViewModel> conferenceRooms) { foreach (var room in conferenceRooms) { var existingRoom = db.EventLocations.Any(r => r.LocationName == room.RoomName); if (!existingRoom) { var location = CreateScheduleEventLocation(room); db.EventLocations.Add(location); } } db.SaveChanges(); }
public static void CheckTimedContent(IbaCmsDbContext db) { var dbContent = db.ContentLibraries.Where(c => c.Status == ContentStatus.AwaitingDate).OrderByDescending(c => c.Created).AsQueryable(); foreach (var content in dbContent) { if (DateTime.Compare(DateTime.UtcNow, (DateTime)content.AvailableFromDate) > 0) { content.Status = ContentStatus.Active; content.Created = content.AvailableFromDate; } } db.SaveChanges(); }
public static MessageResponseModel GetMessagesFromData(IbaCmsDbContext cmsDb, decimal ibaUserId, MessageRequestModel model) { var result = new MessageResponseModel(); IQueryable <AppUserMessage> msgs; if (model.AppUserMessageId > 0) { msgs = cmsDb.AppUserMessages.Where(a => a.Id == model.AppUserMessageId).AsQueryable(); result.TotalRecords = msgs.Count(); } else { msgs = cmsDb.AppUserMessages.Where(a => a.DeviceOwner.IbaId == ibaUserId && a.Deleted == null && a.Message.SendDate < DateTime.UtcNow) .Where(a => (model.From.HasValue && a.Created > model.From.Value) || !model.From.HasValue) .OrderByDescending(a => a.Created) .AsQueryable(); result.TotalRecords = msgs.Count(); if (model.Start > 0) { msgs = msgs.Skip(model.Start); } if (model.Length <= 0) { model.Length = DefaultPageSize; } msgs = msgs.Take(model.Length); } foreach (var msg in msgs.ToList()) { var item = new AppUserMessagesResponseItem { AppUserMessageId = msg.Id, Title = msg.Message.Title, MessageType = msg.Message.MessageType, Text = msg.Message.Text, Url = msg.Message.Url ?? "", FormattedDate = msg.Message.SendDate.HasValue ? DateTime.SpecifyKind(msg.Message.SendDate.Value, DateTimeKind.Utc) : DateTime.SpecifyKind(msg.Created, DateTimeKind.Utc) }; if (msg.Deleted != null) { item.Status = AppUserMessagesResponseStatus.Deleted; } else if (msg.Read != null) { item.Status = AppUserMessagesResponseStatus.Read; } result.Messages.Add(item); } return(result); }
/// <summary> /// Updates the database table <see cref="Device"/> by setting to /// null the push tokens of each device matching the specified push /// token and the specified type. /// </summary> /// <param name="deviceType"></param> /// <param name="pushToken"></param> private static void NullifyDevicePushToken(DeviceType deviceType, string pushToken) { using (var db = new IbaCmsDbContext()) { var devices = db.Devices .Where(device => deviceType.Equals(device.DeviceType)) .Where(device => pushToken.Equals(device.PushToken)); foreach (var device in devices) { device.PushToken = null; device.UpdatedOn = DateTime.UtcNow; } db.SaveChanges(); } }
public static GetP2PThreadResponseModel GetMessagesBetweenUsers(IbaCmsDbContext cmsDb, int user1, int user2, int?take, int skip = 0) { var thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialSenderId == user1 && r.InitialRecipientId == user2); if (thread == null) { thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialRecipientId == user1 && r.InitialSenderId == user2); } if (thread == null) { throw new HttpException(404, "No chat history found"); } var response = new GetP2PThreadResponseModel(); response.RecipientId = user2; response.ThreadId = thread.P2PMessageThreadId; response.Messages = new List <P2PMessageResponseModel>(); var otherUserActivity = cmsDb.UserMessageThreads.Where(r => r.InitialSenderId == user2 || r.InitialRecipientId == user2).SelectMany(r => r.Messages).Where(r => r.SenderId == user2) .OrderByDescending(r => r.P2PMessageId).FirstOrDefault(); if (otherUserActivity != null) { response.OtherParticipantLastSeenDateTime = DateTime.SpecifyKind((DateTime)otherUserActivity.SentTime, DateTimeKind.Utc); } int messagesToTake = 0; if (take != null) { messagesToTake = (int)take; } else { take = thread.Messages.Count; } foreach (var message in thread.Messages.OrderByDescending(r => r.SentTime).Skip(skip).Take(messagesToTake)) { response.Messages.Add(new P2PMessageResponseModel() { SentTime = DateTime.SpecifyKind((DateTime)message.SentTime, DateTimeKind.Utc), SentByMe = message.SenderId == user1, DeliveredTime = message.DeliveredTime != null ? DateTime.SpecifyKind((DateTime)message.DeliveredTime, DateTimeKind.Utc) : message.DeliveredTime, Message = DecryptMessage(message.Message), MessageId = message.P2PMessageId, ReadTime = message.ReadTime != null ? DateTime.SpecifyKind((DateTime)message.ReadTime, DateTimeKind.Utc) : message.ReadTime, }); } return(response); }
public static async Task SendMessage(IbaCmsDbContext db, long messageId, DateTime?time = null) { var msg = db.CmsMessages.FirstOrDefault(m => m.Id == messageId); if (msg != null) { msg.SendDate = time ?? DateTime.UtcNow; msg.Status = CmsMessageStatus.Outbox; db.SaveChanges(); foreach (var appMessage in msg.AppUserMessages) { if (appMessage.DeviceOwner.NamedUserId != null) { await SendPushMessage(appMessage, time); } } } }
public static List <ConnectionResponseModel> GetconnectedUserIds(IbaCmsDbContext cmsDb, IBAEntities1 db, decimal myId) { List <ConnectionResponseModel> response = new List <ConnectionResponseModel>(); var ids = cmsDb.UserMessageThreads.Where(r => r.InitialSenderId == (int)myId).Select(t => new Connections() { UserId = t.InitialRecipientId, P2PMessage = t.Messages.OrderByDescending(r => r.SentTime).FirstOrDefault() }).ToList(); ids.AddRange(cmsDb.UserMessageThreads.Where(r => r.InitialRecipientId == (int)myId).Select(t => new Connections() { UserId = t.InitialSenderId, P2PMessage = t.Messages.OrderByDescending(r => r.SentTime).FirstOrDefault() }).ToList()); var distinct = ids.Distinct().ToList(); foreach (var message in distinct) { if ((message.P2PMessage.Thread.InitialRecipientId == myId && message.P2PMessage.Thread.InitialRecipientDeletionDate == null) || (message.P2PMessage.Thread.InitialSenderId == myId && message.P2PMessage.Thread.InitialSenderDeletionDate == null)) { var user = db.C_records.SingleOrDefault(r => r.id == message.UserId); var connection = new ConnectionResponseModel() { UserId = message.UserId, Name = user != null?String.Format("{0} {1}", user.given_name, user.family_name) : null, UserProfileImageUrl = user != null ? user.ProfileImageName : null, LastMessage = message.P2PMessage == null ? null : new P2PMessageResponseModel() { DeliveredTime = message.P2PMessage.DeliveredTime, SentByMe = message.P2PMessage.SenderId == myId, SentTime = DateTime.SpecifyKind((DateTime)message.P2PMessage.SentTime, DateTimeKind.Utc), Message = DecryptMessage(message.P2PMessage.Message), MessageId = message.P2PMessage.P2PMessageId, ReadTime = message.P2PMessage.ReadTime != null?DateTime.SpecifyKind((DateTime)message.P2PMessage.ReadTime, DateTimeKind.Utc) : message.P2PMessage.ReadTime } }; response.Add(connection); } } return(response); }
public static bool LogMessageStatus(IbaCmsDbContext cmsDb, UpdateMessageStatusModel model, decimal ibaId) { var msg = cmsDb.AppUserMessages.FirstOrDefault(a => a.Id == model.AppUserMessageId && a.DeviceOwner.IbaId == ibaId); // make sure that msg updated by correct device if (msg == null) { return(true); // should never happen } bool updated = false; if (model.Read != null && msg.Read == null) { updated = true; msg.Read = model.Read.Value; } if (model.Deleted != null && msg.Deleted == null) { updated = true; msg.Deleted = model.Deleted.Value; } if (model.Received != null && msg.Received == null) { updated = true; msg.Received = model.Received.Value; } if (!updated) { return(true); } try { cmsDb.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public static byte[] ExportSingleLogToByteArray(long messageId, IbaCmsDbContext cmsDb, IBAEntities1 ibaDb) { var msg = cmsDb.CmsMessages.FirstOrDefault(m => m.Id == messageId); if (msg == null || msg.Status <= CmsMessageStatus.Outbox) { return(null); } var export = MsgToExportLog(msg, ibaDb); using (var memoryStream = new MemoryStream()) { var streamWriter = new StreamWriter(memoryStream); var csvWriter = new CsvWriter(streamWriter); WriteMessage(csvWriter, export); streamWriter.Flush(); memoryStream.Position = 0; return(memoryStream.ToArray()); } }
public static P2pMessageSendResponseModel SendMessageToUser(IbaCmsDbContext cmsDb, IBAEntities1 Db, int user1, int user2, string messageToSend, ControllerContext context, string uuid = null) { var response = new P2pMessageSendResponseModel(); response.Success = true; var thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialSenderId == user1 && r.InitialRecipientId == user2); if (thread == null) { thread = cmsDb.UserMessageThreads.SingleOrDefault(r => r.InitialRecipientId == user1 && r.InitialSenderId == user2); } //NOTE: Users can only send messages to another user if they are both visiting the SAME conference. //var conferenceOnNow = IBA_Common.Models.conf_conference.ConferenceOnNow(cmsDb); //if (conferenceOnNow == null) //{ // response.Success = false; //} //var delegateConf = Db.conf_delegate.SingleOrDefault(r => r.conference_id == 673 && r.id == user1); // Sender is at conference //if (delegateConf == null) //{ // response.Success = false; //} //var delegateConf2 = Db.conf_delegate.SingleOrDefault(r => r.conference_id == 673 && r.id == user2);// Receiver is at conference //if (delegateConf2 == null) //{ // response.Success = false; //} if (response.Success) { var sender = Db.C_records.SingleOrDefault(r => r.id == user1); if (thread == null) { //NOTE: If no thread exists this is the first contact the user has made with the other person. Check recepient device usage if last use > X days send email. //var recipientDevices = cmsDb.Devices.Where(r => r.DeviceOwner.IbaId == user2); //var user = Db.conf_delegate.Where(t => t.conference_id == AppSettings.ConferenceId).FirstOrDefault(r => r.record_id == user2); //if (user != null) //{ // if(AppSettings.ShouldSendEmails) // { // if (recipientDevices.Count() == 0) // { // EmailHelper.SendEmail(user.conf_email, "IBA Members App Notification", new P2PEmailViewModel() { SenderName = sender.given_name, ProfileImageUrl = sender.ProfileImageName, MessageContents = messageToSend }, context, "~/Views/Messages/P2PMessageEmail.cshtml"); // } // else // { // var lastUsed = recipientDevices.OrderByDescending(r => r.UpdatedOn).First(); // if ((lastUsed.UpdatedOn - DateTime.UtcNow).Days > 10) // { // EmailHelper.SendEmail(user.conf_email, "IBA Members App Notification", new P2PEmailViewModel() { SenderName = sender.given_name, ProfileImageUrl = sender.ProfileImageName, MessageContents = messageToSend }, context, "~/Views/Messages/P2PMessageEmail.cshtml"); // } // } // } //} thread = new P2PMessageThread() { Messages = new List <P2PMessage>(), InitialSenderId = user1, InitialRecipientId = user2, }; cmsDb.UserMessageThreads.Add(thread); } thread.InitialRecipientDeletionDate = null; thread.InitialSenderDeletionDate = null; var message = new P2PMessage() { Message = EncryptMessage(messageToSend), SenderName = string.Format("{0} {1}", sender.given_name, sender.family_name), SenderId = (int)sender.id, SentTime = DateTime.UtcNow }; thread.Messages.Add(message); cmsDb.SaveChanges(); response.Message = new P2PMessageResponseModel() { SentTime = message.SentTime, SentByMe = message.SenderId == user1, DeliveredTime = message.DeliveredTime, Message = messageToSend, MessageId = message.P2PMessageId, ReadTime = message.ReadTime, UUID = uuid //NOTE: Used by the client to tie up sent messages. }; ProcessOneMessage(cmsDb, message); } return(response); }
public static List <MessageViewModel> ViewAllMessages(IbaCmsDbContext cmsDb) { var msgs = cmsDb.CmsMessages.OrderByDescending(m => m.Created).Where(m => m.Status != CmsMessageStatus.Archived).ToList(); return(msgs.Select(msg => MsgToMessageViewModel(msg, false)).ToList()); }
public static DeviceUpdateResponseModel UpdateDevice(IbaCmsDbContext cmsDb, DeviceUpdateRequestModel model, decimal ibaRecordId) { const string version = "2"; var result = new DeviceUpdateResponseModel(); var device = cmsDb.Devices.FirstOrDefault(d => d.DeviceUUID == model.DeviceUUID); if (device != null) { if (device.DeviceOwner.IbaId != ibaRecordId) { //note: Update device to new owner. var newOwner = cmsDb.DeviceOwners.FirstOrDefault(o => o.IbaId == ibaRecordId); if (newOwner == null) { newOwner = new DeviceOwner { IbaId = ibaRecordId, Devices = new List <Device> { device }, LastDeviceUpdate = DateTime.UtcNow, NamedUserId = ibaRecordId.ToString() }; cmsDb.DeviceOwners.Add(newOwner); } device.DeviceOwner = newOwner; } device.DeviceOwner.NamedUserId = ibaRecordId.ToString(); if (device.PushToken == model.PushToken) { device.DeviceOwner.LastDeviceUpdate = DateTime.UtcNow; cmsDb.SaveChanges(); return(result); } try { device.PushToken = model.PushToken; device.DeviceType = model.DeviceType; device.ApiVersion = version; device.UpdatedOn = DateTime.UtcNow; device.DeviceOwner.LastDeviceUpdate = DateTime.UtcNow; cmsDb.SaveChanges(); return(result); } catch (Exception) { result.SetError(HttpStatusCode.InternalServerError, "Could not update the Push Token"); } } var owner = cmsDb.DeviceOwners.FirstOrDefault(o => o.IbaId == ibaRecordId); device = new Device { DeviceUUID = model.DeviceUUID, ApiVersion = version, DeviceType = model.DeviceType, PushToken = model.PushToken, UpdatedOn = DateTime.UtcNow }; if (owner == null) { owner = new DeviceOwner { IbaId = ibaRecordId, Devices = new List <Device> { device }, LastDeviceUpdate = DateTime.UtcNow }; cmsDb.DeviceOwners.Add(owner); } else { owner.Devices.Add(device); owner.LastDeviceUpdate = DateTime.UtcNow; } try { cmsDb.SaveChanges(); } catch (Exception) { result.SetError(HttpStatusCode.InternalServerError, "Could not update the Push Token"); } return(result); }
//NOTE: Paging not currently supported in app. public static ConferenceBuildEventResponseModel GetConferenceWithBuildingEventsById(IbaCmsDbContext db, IBAEntities1 ibaDb, int conferenceId, decimal userId, int take = 20, int skip = 0) { var conference = ibaDb.conf_conference.SingleOrDefault(r => r.id == conferenceId); if (conference != null) { return(new ConferenceBuildEventResponseModel { Start = AppSettings.ConferenceStart, End = AppSettings.ConferenceEnd, Venue = conference.venue, Name = conference.title, Events = GetEventsForConferenceById(db, ibaDb, conferenceId, userId, take, skip), Buildings = GetEventsForConferenceById(db, ibaDb, conferenceId, take, skip) }); } return(new ConferenceBuildEventResponseModel()); }
public static List <ConferenceBuildingResponseModel> GetEventsForConferenceById(IbaCmsDbContext db, IBAEntities1 ibaDb, int conferenceId, int take = 20, int skip = 0) { var buildings = db.EventBuildings.Where(r => r.ConferenceId == conferenceId).Select(t => new ConferenceBuildingResponseModel() { BuildingId = t.ScheduleEventBuildingId, BuildingName = t.Name, Floors = db.FloorNames.Where(r => r.Building.ScheduleEventBuildingId == t.ScheduleEventBuildingId).Select(x => new ConferenceBuildingFloorResponseModel() { Name = x.Name, FloorIndex = x.Floor }).ToList() }).ToList(); return(buildings); }