public Task <EventCalendarInfo> GetEventCalendarDetail(int eventID, int userID) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { List <EventCalendarPhoto> dataList = db.EventCalendarPhotoes.Where(a => a.EventID == eventID).ToList(); List <EventCalendarPhotoInfo> infoList = new List <EventCalendarPhotoInfo>(); foreach (var data in dataList) { EventCalendarPhotoInfo info = new EventCalendarPhotoInfo(); PropertyCopier <EventCalendarPhoto, EventCalendarPhotoInfo> .Copy(data, info); info.PhotoName = MIUFileServer.GetFileUrl("EventCalendar/Photo", info.PhotoName); infoList.Add(info); } string loginName = db.Users.Where(a => a.ID == userID).Select(a => a.LoginName).SingleOrDefault(); EventCalendar eventData = db.EventCalendars.Where(a => a.ID == eventID).SingleOrDefault(); EventCalendarInfo eventInfo = new EventCalendarInfo(); PropertyCopier <EventCalendar, EventCalendarInfo> .Copy(eventData, eventInfo); eventInfo.IsFavorite = db.FavoriteLists.Any(a => a.FavoriteID == eventData.ID && a.UserID == userID && a.FavoriteType == "EventCalendar"); eventInfo.IsGoing = db.EventCalendarReacts.Any(a => a.EventID == eventData.ID && a.LoginName == loginName && a.Action == "Going" && a.Flag == true); eventInfo.IsInterested = db.EventCalendarReacts.Any(a => a.EventID == eventData.ID && a.LoginName == loginName && a.Action == "Interested" && a.Flag == true); eventInfo.TotalGoing = db.EventCalendarReacts.Where(a => a.EventID == eventData.ID && a.Action == "Going" && a.Flag == true).Count(); eventInfo.TotalInterested = db.EventCalendarReacts.Where(a => a.EventID == eventData.ID && a.Action == "Interested" && a.Flag == true).Count(); eventInfo.CoverPhotoPath = MIUFileServer.GetFileUrl("EventCalendar/Photo", infoList.Where(a => a.IsCover == true).Select(a => a.PhotoName).SingleOrDefault()); eventInfo.photoList = infoList; return eventInfo; } })); }
public async Task <HttpResponseMessage> GetEventCalendarDetail(int eventID, int userId) { try { EventCalendarDAL dal = new EventCalendarDAL(); EventCalendarInfo data = await dal.GetEventCalendarDetail(eventID, userId); if (data != null) { return(Request.CreateResponse <EventCalendarInfo>(HttpStatusCode.OK, data)); } else { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, Constants.ErrorNotFound)); } } catch (DbEntityValidationException ex) { var controllerName = ControllerContext.RouteData.Values["controller"].ToString(); var actionName = ControllerContext.RouteData.Values["action"].ToString(); Logger log = new Logger(); log.ErrorLog(ex, controllerName, actionName); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, Constants.ErrorSysError)); } }
public Task <List <EventCalendarInfo> > GetAllEventCalendar(int userID, string role) { return(Task.Run(() => { using (MIUEntities db = new MIUEntities()) { string loginName = db.Users.Where(a => a.ID == userID).Select(a => a.LoginName).SingleOrDefault(); List <EventCalendarInfo> infoList = new List <EventCalendarInfo>(); List <EventCalendar> dataList = db.EventCalendars.Where(x => x.EventVisibility.Contains("Public") || x.EventVisibility.Contains(role)).OrderByDescending(a => a.UpdatedDate != null ? a.UpdatedDate : a.CreatedDate).ToList(); foreach (var data in dataList) { EventCalendarInfo info = new EventCalendarInfo(); PropertyCopier <EventCalendar, EventCalendarInfo> .Copy(data, info); string photoName = db.EventCalendarPhotoes.Where(a => a.EventID == data.ID && a.IsCover == true).Select(a => a.PhotoName).SingleOrDefault(); info.IsFavorite = db.FavoriteLists.Any(a => a.FavoriteID == data.ID && a.UserID == userID && a.FavoriteType == "EventCalendar"); info.IsGoing = db.EventCalendarReacts.Any(a => a.EventID == data.ID && a.LoginName == loginName && a.Action == "Going" && a.Flag == true); info.IsInterested = db.EventCalendarReacts.Any(a => a.EventID == data.ID && a.LoginName == loginName && a.Action == "Interested" && a.Flag == true); info.TotalGoing = db.EventCalendarReacts.Where(a => a.EventID == data.ID && a.Action == "Going" && a.Flag == true).Count(); info.TotalInterested = db.EventCalendarReacts.Where(a => a.EventID == data.ID && a.Action == "Interested" && a.Flag == true).Count(); if (!string.IsNullOrEmpty(photoName)) { info.CoverPhotoPath = MIUFileServer.GetFileUrl("EventCalendar/Photo", photoName); } infoList.Add(info); } return infoList; } })); }