コード例 #1
0
        private void button_ok_Click(object sender, EventArgs e)
        {
            var address = MongoRepositoryAddresses.Get(textBox_street.Text, textBox_house.Text, textBox_building.Text,
                                                       textBox_apartment.Text);

            if (address == null)
            {
                MessageBox.Show("Адрес не занесен в базу!");
                return;
            }

            var orgEvent = new OrgEvent
            {
                Id            = OrgEvent?.Id ?? Guid.NewGuid(),
                EventType     = GetEventType(),
                CounterType   = GetCounterType(),
                AddressId     = address.Id,
                DateTime      = dateTimePicker_date.Value.Ticks,
                ImplementerId = ((ComboBoxItem)comboBox_implementer.SelectedItem).HiddenValue,
                Place         = string.IsNullOrEmpty(textBox_place.Text) ? null : textBox_place.Text,
                Count         = Convert.ToDecimal(textBox_count.Text)
            };

            MongoRepositoryOrgEvent.Upsert(orgEvent);

            Close();
        }
コード例 #2
0
        public OrgEvent getEventByOrgIDDate(int orgID, string date)
        {
            OrgEvent orgevent = new OrgEvent();
            var      even     = dataContext.sp_GetEventByOrgIDDate(orgID, date).First();

            orgevent.Event_ID               = even.Event_ID;
            orgevent.Time                   = even.Time;
            orgevent.Title                  = even.Title;
            orgevent.Driver1                = even.Driver1;
            orgevent.Driver2                = even.Driver2;
            orgevent.Organization_ID        = even.Organization_ID;
            orgevent.OrganizationWorkedWith = even.OrganizationWorkedWith;
            orgevent.OnOffCampus            = even.OnOffCampus;
            orgevent.ContactName            = even.ContactName;
            orgevent.Location               = even.Location;
            orgevent.Date                   = even.Date;
            orgevent.Description            = even.Description;
            orgevent.ContactPhone           = even.ContactPhone;
            orgevent.ContactEmail           = even.ContactEmail;
            orgevent.BusRental              = even.BusRental;
            orgevent.VanRental              = even.VanRental;
            orgevent.DollarsSpentByOrg      = even.DollarsSpentByOrg;
            orgevent.DollarsSpentByPartner  = even.DollarsSpentByPartner;
            orgevent.HoursVolunteered       = even.HoursVolunteered;
            orgevent.Attendance             = even.Attendance;
            orgevent.CreatedByUser          = even.CreatedByUser;
            orgevent.RoomReserved           = even.RoomReserved;
            orgevent.Marketing              = even.Marketing;
            orgevent.Catering               = even.Catering;
            orgevent.SignupForm             = even.SignupForm;
            orgevent.ActivityWaiver         = even.ActivityWaiver;
            orgevent.CUNight                = even.CUNight;

            return(orgevent);
        }
コード例 #3
0
ファイル: CalendarService.cs プロジェクト: showmap/smartwalk
        public async Task <CalendarEvent> CreateNewEvent(OrgEvent orgEvent)
        {
            var result = await EventStore.RequestAccessAsync(EKEntityType.Event);

            if (result.Item1 && result.Item2 == null)
            {
                var newEvent = EKEvent.FromStore(EventStore);

                newEvent.AllDay    = true;
                newEvent.StartDate = orgEvent.StartTime.ToNSDate();
                newEvent.EndDate   = (orgEvent.EndTime ?? orgEvent.StartTime).ToNSDate();
                newEvent.Location  = string.Format("{0},{1}", orgEvent.Latitude, orgEvent.Longitude);
                newEvent.Title     = orgEvent.Title;
                newEvent.Notes     = orgEvent.Description;
                newEvent.Url       = _configuration.GetEventUrl(orgEvent.Id).ToNSUrl();

                newEvent.Calendar = EventStore.DefaultCalendarForNewEvents;

                var calendarEvent = new CalendarEvent(EventStore, newEvent);
                return(calendarEvent);
            }

            new UIAlertView(
                Localization.AccessDenied,
                Localization.UserDeniedAccessToCalendars,
                null,
                Localization.OK,
                null).Show();

            return(null);
        }
コード例 #4
0
        public JsonResult SaveEvent(OrgEventList eventt)
        {
            string orgid  = User.OrgId;
            int    result = 0;

            EPortal.Models.OrgEvent orgevent = new OrgEvent();
            using (EPortalEntities entity = new EPortalEntities())
            {
                orgevent.Id        = Guid.NewGuid().ToString();
                orgevent.EventCode = "New Event";
                orgevent.EventName = eventt.EventName;
                var theDate = new DateTime(eventt.EventDate.Year, eventt.EventDate.Month, eventt.EventDate.Day, eventt.Hour, eventt.Min, 00);
                orgevent.EventDate           = theDate;
                orgevent.EventDescription    = eventt.EventDescription;
                orgevent.OganizationId       = orgid;
                entity.Entry(orgevent).State = System.Data.Entity.EntityState.Added;
                entity.OrgEvents.Add(orgevent);
                try
                {
                    result = entity.SaveChanges();
                }
                catch (Exception ex)
                {
                }
            }


            return(Json(result > 0 ? true : false, JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
        private void UpdateDaysState(OrgEvent orgEvent)
        {
            if (orgEvent == null
                ||
                (!orgEvent.StartTime.HasValue ||
                 !orgEvent.EndTime.HasValue)
                ||
                (orgEvent.StartTime.Value.Date ==
                 orgEvent.EndTime.Value.Date))
            {
                DaysCount  = 0;
                CurrentDay = null;
            }
            else
            {
                var startDate = orgEvent.StartTime.Value;
                var endDate   = orgEvent.EndTime.Value;

                DaysCount = DateTimeExtensions.DaysCount(
                    orgEvent.StartTime,
                    orgEvent.EndTime);

                if (startDate <= DateTime.Now.Date &&
                    DateTime.Now.Date <= endDate)
                {
                    CurrentDay = (DateTime.Now.Date - startDate).Days + 1;
                }
                else
                {
                    CurrentDay = null; // Maybe persist day on refresh
                }
            }
        }
コード例 #6
0
        private OrgEvent GetOrgEventByDay(OrgEvent orgEvent)
        {
            if (orgEvent == null ||
                !orgEvent.StartTime.HasValue ||
                !CurrentDay.HasValue)
            {
                return(orgEvent);
            }

            var firstDay = orgEvent.StartTime.Value.Date;
            var day      = firstDay.AddDays(CurrentDay.Value - 1);

            var venues =
                orgEvent.Venues
                .Select(
                    v =>
                    new Venue(v.Info, v.Description)
            {
                Shows = GetShowsByDay(v.Shows, day, orgEvent.GetOrgEventRange())
            })
                // taking venues without any shows or the ones that has shows for current day
                .Where(v => v.Shows == null || v.Shows.Length > 0)
                .ToArray();


            var orgEventByDay =
                new OrgEvent(
                    orgEvent.EventMetadata,
                    orgEvent.Host,
                    venues);

            return(orgEventByDay);
        }
コード例 #7
0
        public async Task <IApiResult <OrgEvent> > GetOrgEventInfo(int id, DataSource source)
        {
            var request  = SmartWalkApiFactory.CreateOrgEventInfoRequest(id);
            var response = await GetResponse(request, source);

            var result = default(IApiResult <OrgEvent>);

            if (response != null && response.Data != null)
            {
                var eventMetadata = response.Data
                                    .GetRecords <EventMetadata>(0)
                                    .FirstOrDefault();

                var host = response.Data
                           .GetRecords <Entity>(1)
                           .FirstOrDefault();

                var orgEvent = new OrgEvent(eventMetadata, host);

                result = new ApiResult <OrgEvent> {
                    Data   = orgEvent,
                    Source = response.Source
                };
            }

            return(result);
        }
コード例 #8
0
ファイル: ModelExtensions.cs プロジェクト: showmap/smartwalk
        public static Tuple <DateTime?, DateTime?> GetOrgEventRange(this OrgEvent orgEvent)
        {
            var result = orgEvent != null && orgEvent.StartTime.HasValue
                ? new Tuple <DateTime?, DateTime?>(orgEvent.StartTime, orgEvent.EndTime)
                : null;

            return(result);
        }
コード例 #9
0
ファイル: ModelExtensions.cs プロジェクト: showmap/smartwalk
        public static bool ShowVenueShowLogos(this OrgEvent orgEvent)
        {
            var result = orgEvent != null && orgEvent.Venues
                         .SelectMany(v => v.Shows ?? new Show[] { })
                         .Any(s => s.Pictures != null && s.Pictures.Small != null);

            return(result);
        }
コード例 #10
0
        void OnOfferRideButtonClicked(object sender, EventArgs e)
        {
            Button         button   = (Button)sender;
            OrgEvent       orgEvent = (OrgEvent)button.CommandParameter;
            OfferRidesPage page     = new OfferRidesPage(orgEvent);

            NavigationUtil.SwitchDetailPage(page);
        }
コード例 #11
0
        public static void Upsert(OrgEvent orgEvent)
        {
            var collection = MongoConnection.MongoCollectionOrgEvents;
            var query      = Query <OrgEvent> .EQ(a => a.Id, orgEvent.Id);

            var update = Update.Replace(orgEvent);

            collection.Update(query, update, UpdateFlags.Upsert);
        }
コード例 #12
0
        public OfferRidesPage(OrgEvent orgEvent)
        {
            this.orgEvent = orgEvent;
            InitializeComponent();
            List <Person> requestList     = EventService.getInstance().GetRequests(orgEvent.Id);
            Style         eventGridStyle  = (Style)Application.Current.Resources["eventWindowStyle"];
            Style         labelGridStyle  = (Style)Application.Current.Resources["eventLabelStyle"];
            Style         buttonGridStyle = (Style)Application.Current.Resources["eventButtonStyle"];
            Style         labelStyle      = (Style)Application.Current.Resources["labelStyle"];
            Grid          grid            = OfferRidesGrid;

            grid.Children.Clear();
            int   counter = 0;
            Label eventDescriptionLabel = new Label();

            eventDescriptionLabel.Style = labelStyle;
            eventDescriptionLabel.Text  = orgEvent.GetDescription();
            grid.Children.Add(eventDescriptionLabel, 0, counter);
            counter++;
            if (requestList.Count == 0)
            {
                Label offerRidesLabel = new Label();
                offerRidesLabel.Style = labelStyle;
                offerRidesLabel.Text  = "There are no pending requests for this event";
                grid.Children.Add(offerRidesLabel, 0, counter);
                counter++;
            }
            foreach (Person rideRequester in requestList)
            {
                Grid subGrid = new Grid();
                subGrid.Style   = eventGridStyle;
                subGrid.Padding = 2;
                Label nameLabel = new Label();
                nameLabel.Text  = rideRequester.GetFullName();
                nameLabel.Style = labelGridStyle;
                subGrid.Children.Add(nameLabel, 0, 1, 0, 1);
                subGrid.Padding = 2;
                Label addressLabel = new Label();
                addressLabel.Text  = rideRequester.GetAddress();
                addressLabel.Style = labelGridStyle;
                subGrid.Children.Add(addressLabel, 1, 2, 0, 1);
                Button offerRideButton = new Button();
                offerRideButton.Text             = "Offer Ride to " + rideRequester.GetFullName();
                offerRideButton.Style            = buttonGridStyle;
                offerRideButton.CommandParameter = rideRequester;
                offerRideButton.Clicked         += new EventHandler(OnOfferRideButtonClicked);
                subGrid.Children.Add(offerRideButton, 0, 2, 1, 2);
                grid.Children.Add(subGrid, 0, counter);
                counter++;
            }
            Button backButton = new Button();

            backButton.Text     = "Back to Events";
            backButton.Clicked += new EventHandler(OnBackButtonClicked);
            grid.Children.Add(backButton, 0, counter);
        }
コード例 #13
0
        public List <Person> GetPassengers(Int32 eventId)
        {
            User     user     = UserService.getInstance().GetUser();
            OrgEvent orgEvent = getOrgEvent(eventId);

            if (orgEvent != null)
            {
                return(orgEvent.GetPassengers(user));
            }
            return(new List <Person>());
        }
コード例 #14
0
ファイル: ModelExtensions.cs プロジェクト: showmap/smartwalk
        public static string GetDateString(this OrgEvent orgEvent)
        {
            var result = orgEvent != null && orgEvent.StartTime.HasValue
                ? string.Format(
                "{0:D}{1}{2:D}",
                orgEvent.StartTime,
                orgEvent.EndTime.HasValue ? " - " : string.Empty,
                orgEvent.EndTime)
                : null;

            return(result);
        }
コード例 #15
0
 public bool HasUserRequestedRide(OrgEvent orgEvent, Person passenger)
 {
     if (orgEvent.RideRequests != null)
     {
         foreach (Person person in orgEvent.RideRequests)
         {
             if (person.Email.Equals(passenger.Email))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #16
0
        private List <OrgEvent> createOrgEvents()
        {
            Organization organization = new Organization();

            organization.Name = "Philadelphia Baha'i Community";
            Location location = new Location();

            location.Street  = "Bryn Mahr Ave";
            location.City    = "Philadelphia";
            location.State   = "Pa";
            location.Country = "USA";
            List <OrgEvent> retList = new List <OrgEvent>();

            for (int ii = 0; ii < 9; ii++)
            {
                DateTime dateTime = DateTime.Now;
                dateTime.AddDays(2 * ii);
                OrgEvent orgEvent = new OrgEvent();
                orgEvent.Id           = ii;
                orgEvent.Time         = dateTime;
                orgEvent.Name         = "Devotional";
                orgEvent.Location     = location;
                orgEvent.Organization = organization;
                User user = UserService.getInstance().GetUser();

                if (ii % 3 == 0)
                {
                    Ride ride = new Ride();
                    ride.Driver = user;
                    Person passenger = createPerson();
                    ride.Passengers.Add(passenger);
                    orgEvent.Rides.Add(ride);
                }
                else if (ii % 3 == 1)
                {
                    Ride ride = new Ride();
                    ride.Driver = createPerson();
                    ride.Passengers.Add(user);
                    orgEvent.Rides.Add(ride);
                }
                else
                {
                    Person passenger = createPerson();
                    orgEvent.RideRequests.Add(passenger);
                }
                retList.Add(orgEvent);
            }
            return(retList);
        }
コード例 #17
0
        public bool AssignRequest(Int32 eventId, Person requester)
        {
            OrgEvent orgEvent = getOrgEvent(eventId);

            if (orgEvent != null && orgEvent.RideRequests != null)
            {
                foreach (Person person in orgEvent.RideRequests)
                {
                    if (person.Email.Equals(requester.Email))
                    {
                        orgEvent.RideRequests.Remove(person);
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #18
0
        public async Task <IApiResult <OrgEvent> > GetOrgEvent(int id, DataSource source)
        {
            var request  = SmartWalkApiFactory.CreateOrgEventRequest(id);
            var response = await GetResponse(request, source);

            var result = default(IApiResult <OrgEvent>);

            if (response != null && response.Data != null)
            {
                var eventMetadata = response.Data
                                    .GetRecords <EventMetadata>(0)
                                    .FirstOrDefault();

                var host = response.Data
                           .GetRecords <Entity>(1)
                           .FirstOrDefault();

                var shows = response.Data
                            .GetRecords <Show>(2)
                            .ToArray();

                var venueDetails = response.Data
                                   .GetRecords <EventVenueDetail>(3)
                                   .ToArray();

                var venues = response.Data
                             .GetRecords <Entity>(4)
                             .Select(e =>
                {
                    var venue = CreateVenue(e, venueDetails, shows);
                    return(venue);
                })
                             .OrderBy(venueDetails, eventMetadata.VenueOrderType)
                             .ToArray();

                var orgEvent = new OrgEvent(eventMetadata, host, venues);

                result = new ApiResult <OrgEvent> {
                    Data   = orgEvent,
                    Source = response.Source
                };
            }

            return(result);
        }
コード例 #19
0
        public OrgEvent getEventByEventID(int eventID)
        {
            OrgEvent orgevent = new OrgEvent();

            try
            {
                //forget the OR statement and just send 0 as the organization ID to get just this event.
                var even = dataContext.sp_GetOrgEvent(eventID, 0).First();

                orgevent.Event_ID               = even.Event_ID;
                orgevent.Time                   = even.Time;
                orgevent.Title                  = even.Title;
                orgevent.Driver1                = even.Driver1;
                orgevent.Driver2                = even.Driver2;
                orgevent.Organization_ID        = even.Organization_ID;
                orgevent.OrganizationWorkedWith = even.OrganizationWorkedWith;
                orgevent.OnOffCampus            = even.OnOffCampus;
                orgevent.ContactName            = even.ContactName;
                orgevent.Location               = even.Location;
                orgevent.Date                   = even.Date;
                orgevent.Description            = even.Description;
                orgevent.ContactPhone           = even.ContactPhone;
                orgevent.ContactEmail           = even.ContactEmail;
                orgevent.BusRental              = even.BusRental;
                orgevent.VanRental              = even.VanRental;
                orgevent.DollarsSpentByOrg      = even.DollarsSpentByOrg;
                orgevent.DollarsSpentByPartner  = even.DollarsSpentByPartner;
                orgevent.HoursVolunteered       = even.HoursVolunteered;
                orgevent.Attendance             = even.Attendance;
                orgevent.CreatedByUser          = even.CreatedByUser;
                orgevent.RoomReserved           = even.RoomReserved;
                orgevent.Marketing              = even.Marketing;
                orgevent.Catering               = even.Catering;
                orgevent.SignupForm             = even.SignupForm;
                orgevent.ActivityWaiver         = even.ActivityWaiver;
                orgevent.CUNight                = even.CUNight;
            }
            catch (Exception)
            {
            }
            return(orgevent);
        }
コード例 #20
0
        public VenueShowDataContext(Show show,
                                    FavoritesShowManager favoritesManager,
                                    OrgEvent orgEvent,
                                    bool isLogoVisible       = true,
                                    bool isGroupedByLocation = true,
                                    bool isTimeVisible       = true)
        {
            if (show == null)
            {
                throw new ArgumentNullException("show");
            }
            if (favoritesManager == null)
            {
                throw new ArgumentNullException("favoritesManager");
            }
            if (orgEvent == null)
            {
                throw new ArgumentNullException("orgEvent");
            }

            OrgEventId = orgEvent.Id;

            if (!isGroupedByLocation && orgEvent != null)
            {
                var groupedShow = show as GroupedShow;
                if (groupedShow != null)
                {
                    Venues = orgEvent.Venues.GetVenuesByGroupedShow(groupedShow);
                }
                else
                {
                    Venue = orgEvent.Venues.GetVenueByShow(show);
                }
            }

            Show = show;

            IsFavorite    = favoritesManager.IsShowFavorite(orgEvent.Id, show);
            IsLogoVisible = isLogoVisible;
            IsTimeVisible = isTimeVisible;
        }
コード例 #21
0
        public Tuple <OrgEvent, string> GetOrgEvent(int id)
        {
            var request  = NewRequestFactory.CreateOrgEventRequest(id);
            var response = GetResponse(request);
            var result   = default(Tuple <OrgEvent, string>);

            if (response != null)
            {
                var eventMetadata = response.Item1
                                    .GetRecords <EventMetadata>(0)
                                    .FirstOrDefault();

                var host = response.Item1
                           .GetRecords <Entity>(1)
                           .FirstOrDefault();

                var shows = response.Item1
                            .GetRecords <Show>(2)
                            .ToArray();

                var venueDetails = response.Item1
                                   .GetRecords <EventVenueDetail>(3)
                                   .ToArray();

                var venues = response.Item1
                             .GetRecords <Entity>(4)
                             .Select(e =>
                {
                    var venue = CreateVenue(e, venueDetails, shows);
                    return(venue);
                })
                             .ToArray();

                var orgEvent = new OrgEvent(eventMetadata, host, venues);

                result = new Tuple <OrgEvent, string>(orgEvent, response.Item2);
            }

            return(result);
        }
コード例 #22
0
        public Tuple <OrgEvent, string> GetOrgEventInfo(int id)
        {
            var request  = NewRequestFactory.CreateOrgEventInfoRequest(id);
            var response = GetResponse(request);
            var result   = default(Tuple <OrgEvent, string>);

            if (response != null)
            {
                var eventMetadata = response.Item1
                                    .GetRecords <EventMetadata>(0)
                                    .FirstOrDefault();

                var host = response.Item1
                           .GetRecords <Entity>(1)
                           .FirstOrDefault();

                var orgEvent = new OrgEvent(eventMetadata, host);

                result = new Tuple <OrgEvent, string>(orgEvent, response.Item2);
            }

            return(result);
        }
コード例 #23
0
ファイル: ModelExtensions.cs プロジェクト: showmap/smartwalk
        public static int GetStatus(this OrgEvent orgEvent)
        {
            // current
            if (!orgEvent.StartTime.HasValue ||
                (DateTime.Now.AddDays(-2) <= orgEvent.StartTime &&
                 orgEvent.StartTime <= DateTime.Now.AddDays(2)))
            {
                return(0);
            }

            // past
            if (orgEvent.StartTime < DateTime.Now.AddDays(-2))
            {
                return(-1);
            }

            // future
            if (orgEvent.StartTime > DateTime.Now.AddDays(2))
            {
                return(1);
            }

            return(-2);
        }
コード例 #24
0
        public ActionResult AssoEdit(short infoId, short orgId, string submit,
                                     List <AssoNpc_Org> npcs,
                                     List <AssoEvent_Org> events,
                                     List <AssoChar_Org> charas
                                     )
        {
            if (ModelState.IsValid)
            {
                #region Add Members
                List <short> currentNpcId = db.NpcOrgs.Where(x => x.OrgId == orgId).Select(x => x.NpcId).ToList();
                if (npcs != null)
                {
                    foreach (AssoNpc_Org member in npcs)
                    {
                        //if the association already exists
                        if (currentNpcId.Contains(member.NpcId))
                        {
                            NpcOrg toEdit = db.NpcOrgs.Where(x => x.NpcId == member.NpcId && x.OrgId == orgId).First();

                            //make the edits
                            toEdit.OrgOrder     = member.OrgOrder;
                            toEdit.BlurbNpcPage = member.BlurbNpcPage;
                            toEdit.BlurbOrgPage = member.BlurbOrgPage;
                            toEdit.MemberOrder  = member.MemberOrder;
                            toEdit.IsCurrent    = member.IsCurrent;

                            db.Entry(toEdit).State = EntityState.Modified;
                            db.SaveChanges();
                            currentNpcId.Remove(member.NpcId);
                        }
                        else
                        {
                            NpcOrg toAdd = new NpcOrg
                            {
                                OrgId        = orgId,
                                NpcId        = member.NpcId,
                                OrgOrder     = member.OrgOrder,
                                BlurbNpcPage = member.BlurbNpcPage,
                                BlurbOrgPage = member.BlurbOrgPage,
                                MemberOrder  = member.MemberOrder,
                                IsCurrent    = member.IsCurrent
                            };
                            db.NpcOrgs.Add(toAdd);
                        }
                    }
                }
                if (currentNpcId.Count != 0)
                {
                    foreach (short id in currentNpcId)
                    {
                        NpcOrg gone = db.NpcOrgs.Where(x => x.OrgId == orgId && x.NpcId == id).FirstOrDefault();
                        db.NpcOrgs.Remove(gone);
                    }
                }
                db.SaveChanges();
                #endregion

                #region Add Events
                List <short> currentEventId = db.OrgEvents.Where(x => x.OrgId == orgId).Select(x => x.EventId).ToList();
                if (events != null)
                {
                    foreach (AssoEvent_Org assoEvent in events)
                    {
                        //if the association already exists
                        if (currentEventId.Contains(assoEvent.EventId))
                        {
                            OrgEvent toEdit = db.OrgEvents.Where(x => x.EventId == assoEvent.EventId && x.OrgId == orgId).First();
                            toEdit.Blurb           = assoEvent.Blurb;
                            db.Entry(toEdit).State = EntityState.Modified;
                            db.SaveChanges();
                            currentEventId.Remove(assoEvent.EventId);
                        }
                        else
                        {
                            OrgEvent toAdd = new OrgEvent
                            {
                                OrgId   = orgId,
                                EventId = assoEvent.EventId,
                                Blurb   = assoEvent.Blurb
                            };
                            db.OrgEvents.Add(toAdd);
                        }
                    }
                }
                if (currentEventId.Count != 0)
                {
                    foreach (short id in currentEventId)
                    {
                        OrgEvent gone = db.OrgEvents.Where(x => x.OrgId == orgId && x.EventId == id).FirstOrDefault();
                        db.OrgEvents.Remove(gone);
                    }
                }
                db.SaveChanges();
                #endregion

                #region Add CharacterOrgs
                List <short> currentCharId = db.CharOrgs.Where(x => x.OrgId == orgId).Select(x => x.CharId).ToList();
                if (charas != null)
                {
                    foreach (AssoChar_Org assoChar in charas)
                    {
                        if (currentCharId.Contains(assoChar.CharId))
                        {
                            CharOrg toEdit = db.CharOrgs.Where(x => x.CharId == assoChar.CharId && x.OrgId == orgId).First();
                            toEdit.BlurbOrgPage      = assoChar.BlurbOrgPage;
                            toEdit.IsCurrent         = assoChar.IsCurrent;
                            toEdit.IsPublic          = assoChar.IsPublic;
                            toEdit.KatherineApproved = assoChar.KatherineApproved;
                            db.Entry(toEdit).State   = EntityState.Modified;
                            db.SaveChanges();
                            currentCharId.Remove(assoChar.CharId);
                        }
                        else
                        {
                            CharOrg toAdd = new CharOrg
                            {
                                OrgId             = orgId,
                                CharId            = assoChar.CharId,
                                BlurbOrgPage      = assoChar.BlurbOrgPage,
                                IsPublic          = assoChar.IsPublic,
                                IsCurrent         = assoChar.IsCurrent,
                                KatherineApproved = assoChar.KatherineApproved
                            };
                            db.CharOrgs.Add(toAdd);
                        }
                    }
                }
                if (currentCharId.Count != 0)
                {
                    foreach (short id in currentCharId)
                    {
                        CharOrg gone = db.CharOrgs.Where(x => x.OrgId == orgId && x.CharId == id).FirstOrDefault();
                        db.CharOrgs.Remove(gone);
                    }
                }
                db.SaveChanges();
                #endregion


                return(Json(true));
            }
            //if model fails
            ViewBag.Npcs       = db.NPCs.OrderBy(n => n.Name).ToList();
            ViewBag.Events     = db.Events.OrderBy(e => e.Name).ToList();
            ViewBag.Characters = db.Characters.Where(i => i.IsApproved).OrderBy(c => c.CharacterName).ToList();
            var       org   = db.Orgs.Find(orgId);
            AssoOrgVM model = new AssoOrgVM {
                InfoId = infoId, OrgId = orgId, Submit = submit, Name = org.Name, AssoNpcs = npcs, AssoEvents = events, AssoChars = charas
            };
            return(View(model));
        }
コード例 #25
0
        public ActionResult AssoEdit(short infoId, short eventId, string submit,
                                     List <AssoLocale_Event> locales,
                                     List <AssoOrg_Event> orgs)
        {
            if (ModelState.IsValid)
            {
                #region Add Locales
                List <short> currentLocaleId = db.LocaleEvents.Where(x => x.EventId == eventId).Select(x => x.LocaleId).ToList();
                if (locales != null)
                {
                    foreach (AssoLocale_Event le in locales)
                    {
                        //if the association already exists
                        if (currentLocaleId.Contains(le.LocaleId))
                        {
                            LocaleEvent toEdit = db.LocaleEvents.Where(x => x.LocaleId == le.LocaleId && x.EventId == eventId).First();
                            //if I ever add more columns to LocaleEvent, edit them here
                            //db.Entry(toEdit).State = EntityState.Modified;
                            //db.SaveChanges();
                            currentLocaleId.Remove(le.LocaleId);
                        }
                        else
                        {
                            LocaleEvent toAdd = new LocaleEvent
                            {
                                EventId  = eventId,
                                LocaleId = le.LocaleId
                            };
                            db.LocaleEvents.Add(toAdd);
                        }
                    }
                }
                if (currentLocaleId.Count != 0)
                {
                    foreach (short id in currentLocaleId)
                    {
                        LocaleEvent gone = db.LocaleEvents.Where(x => x.EventId == eventId && x.LocaleId == id).FirstOrDefault();
                        db.LocaleEvents.Remove(gone);
                    }
                }
                db.SaveChanges();
                #endregion

                #region Add Orgs
                List <short> currentOrgId = db.OrgEvents.Where(x => x.EventId == eventId).Select(x => x.OrgId).ToList();
                if (orgs != null)
                {
                    foreach (AssoOrg_Event assoOrg in orgs)
                    {
                        //if the association already exists
                        if (currentOrgId.Contains(assoOrg.OrgId))
                        {
                            OrgEvent toEdit = db.OrgEvents.Where(x => x.OrgId == assoOrg.OrgId && x.EventId == eventId).First();
                            toEdit.Blurb           = assoOrg.Blurb;
                            db.Entry(toEdit).State = EntityState.Modified;
                            db.SaveChanges();
                            currentOrgId.Remove(assoOrg.OrgId);
                        }
                        else
                        {
                            OrgEvent toAdd = new OrgEvent
                            {
                                EventId = eventId,
                                OrgId   = assoOrg.OrgId,
                                Blurb   = assoOrg.Blurb
                            };
                            db.OrgEvents.Add(toAdd);
                        }
                    }
                }
                if (currentOrgId.Count != 0)
                {
                    foreach (short id in currentOrgId)
                    {
                        OrgEvent gone = db.OrgEvents.Where(x => x.EventId == eventId && x.OrgId == id).FirstOrDefault();
                        db.OrgEvents.Remove(gone);
                    }
                }
                db.SaveChanges();
                #endregion
                return(Json(true));
            }

            //if model fails
            ViewBag.Locales = db.Locales.OrderBy(l => l.Name).ToList();
            ViewBag.Orgs    = db.Orgs.OrderBy(l => l.Name).ToList();
            var taevent = db.Events.Find(eventId);
            //if I actually was handling if the model failed (as currently I'm using the bandaid solution of just preventing the submition ) this would not cut it. It does not account for orgs or locales being null
            AssoEventVM model = new AssoEventVM {
                InfoId = infoId, EventId = eventId, Submit = submit, Name = taevent.Name, AssoOrgs = orgs, AssoLocales = locales
            };
            return(View(model));
        }
コード例 #26
0
        private async Task <DataSource> UpdateOrgEvent(DataSource source, bool showProgress = true)
        {
            if (_parameters != null)
            {
                if (showProgress)
                {
                    IsLoading = true;
                }

                var orgEvent = default(OrgEvent);

                try
                {
                    var result = await _apiService.GetOrgEvent(
                        _parameters.EventId,
                        source);

                    if (result != null)
                    {
                        orgEvent = result.Data;
                        source   = result.Source;
                    }
                }
                catch (Exception ex)
                {
                    _exceptionPolicy.Trace(ex);
                }

                if (showProgress)
                {
                    IsLoading = false;
                }

                if (orgEvent != null)
                {
                    UpdateDaysState(orgEvent);
                    _allDaysOrgEvent = orgEvent;

                    if (!CurrentDay.HasValue)
                    {
                        OrgEvent = orgEvent;
                    }
                    else
                    {
                        OrgEvent = GetOrgEventByDay(orgEvent);
                    }
                }

                if (showProgress)
                {
                    RaiseRefreshCompleted(OrgEvent != null);
                }
            }
            else
            {
                _allDaysOrgEvent = null;
                OrgEvent         = null;
            }

            return(source);
        }
コード例 #27
0
 public OrgEventForm(OrgEvent orgEvent = null, Address address = null)
 {
     OrgEvent = orgEvent;
     Address  = address;
     InitializeComponent();
 }
コード例 #28
0
        public static NSAttributedString GetOrgEventDateString(
            this OrgEvent orgEvent,
            UIColor textColor,
            int?currentDay  = null,
            bool isVertical = true)
        {
            if (orgEvent == null || !orgEvent.StartTime.HasValue)
            {
                return(new NSAttributedString());
            }

            var daysCount = DateTimeExtensions.DaysCount(orgEvent.StartTime, orgEvent.EndTime);
            var result    = new NSMutableAttributedString();

            var startDate = orgEvent.StartTime.Value.AddDays((currentDay ?? 1) - 1);
            var endDate   = orgEvent.EndTime.HasValue ? orgEvent.EndTime.Value : DateTime.MinValue;

            result.Append(
                new NSAttributedString(
                    string.Format("{0:MMM}{1}", startDate, Environment.NewLine).ToUpper(),
                    isVertical
                        ? Theme.OrgEventMonthFont
                        : Theme.OrgEventMonthLandscapeFont,
                    textColor,
                    null,
                    null,
                    new NSMutableParagraphStyle {
                Alignment = UITextAlignment.Center
            }));

            if (daysCount > 1 && currentDay == null)
            {
                result.Append(
                    new NSAttributedString(
                        string.Format("{0}-{1}", startDate.Day, endDate.Day),
                        isVertical
                            ? Theme.OrgEventTwoDaysFont
                            : Theme.OrgEventTwoDaysLandscapeFont,
                        textColor,
                        null,
                        null,
                        new NSMutableParagraphStyle {
                    Alignment          = UITextAlignment.Center,
                    LineHeightMultiple = 0.85f
                }));
            }
            else
            {
                result.Append(
                    new NSAttributedString(
                        string.Format("{0}", startDate.Day),
                        isVertical
                            ? Theme.OrgEventDayFont
                            : Theme.OrgEventDayLandscapeFont,
                        textColor,
                        null,
                        null,
                        new NSMutableParagraphStyle {
                    Alignment          = UITextAlignment.Center,
                    LineHeightMultiple = 0.9f
                }));
            }

            return(result);
        }