Exemplo n.º 1
0
        public UiMeeting(ExMeeting meeting)
        {
            Meeting = meeting;
            Hours   = $"{Meeting.Start.ToLocalTime().ToString("HH:mm")} - {Meeting.End.ToLocalTime().ToString("HH:mm")}";
            Date    = Meeting.Start.Date.Equals(Meeting.End.ToLocalTime().Date) ? Meeting.Start.ToLocalTime().ToString("dd.MM.yy") : $"{Meeting.Start.ToLocalTime().Date.ToShortDateString()} - {Meeting.End.ToLocalTime().Date.ToString("dd.MM.yy")}";

            try
            {
                //if (Device.RuntimePlatform == Device.iOS)
                //{
                //    var client = new WebClient();
                //    var bytes = client.DownloadData(_meeting.Staff.ImageUrl);
                //    StaffImageSource = ImageSource.FromStream(() => new MemoryStream(bytes));
                //    client.Dispose();
                //}
                //else
                //{
                var uri = new Uri(Meeting.Staff.ImageUrl);
                StaffImageSource = ImageSource.FromUri(uri);
                //}
            }
            catch (Exception e)
            {
                StaffImageSource = ImageSource.FromStream(() => Images.ReadImageAsStream(EmbeddedImages.DefaultUserImage_png));
            }
        }
        // GET: Appointments/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var app = await _context.TblAppointments.Include(a => a.User).Include(x => x.Employee).Include(x => x.Employee.Store).FirstOrDefaultAsync(m => m.Id == id);

            if (app == null || app.Employee == null || app.Employee.Store == null)
            {
                return(NotFound());
            }

            ExMeeting meeting = new ExMeeting
            {
                Id       = app.Id,
                ShopId   = app.Employee.StoreId,
                ShopName = app.User.Firstname + " " + app.User.Lastname,
                Start    = app.ValidFrom.AddHours(2),
                End      = app.ValidTo.AddHours(2),
                Staff    = new ExStaff
                {
                    Id              = app.Employee.Id,
                    Name            = app.Text,
                    WhatsappContact = app.User.PhoneNumber,
                    //Image = app.Employee.Image
                }
            };

            ViewBag.AdressUser = $"{app.User.PostalCode ?? ""} {app.User.City ?? ""} {app.User.Street ?? ""}";

            return(View(meeting));
        }
        // GET: Appointments/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var app = await _context.TblAppointments.Include(x => x.Employee).Include(x => x.Employee.Store).FirstOrDefaultAsync(m => m.Id == id);

            if (app == null || app.Employee == null || app.Employee.Store == null)
            {
                return(NotFound());
            }

            ExMeeting meeting = new ExMeeting
            {
                Id       = app.Id,
                ShopId   = app.Employee.StoreId,
                ShopName = app.Employee.Store.CompanyName,
                Start    = app.ValidFrom.AddHours(2),
                End      = app.ValidTo.AddHours(2),
                Staff    = new ExStaff
                {
                    Id              = app.Employee.Id,
                    Name            = app.Employee.FirstName + " " + app.Employee.LastName,
                    WhatsappContact = app.Employee.TelephoneNumber,
                    Image           = app.Employee.Image
                }
            };

            return(View(meeting));
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Termine eines Users für einen Tag holen
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        private async Task <List <ExMeeting> > GetMyMeetingsForDateInternal(ExGetMeetingsForDateRequest request)
        {
            using (var db = new Db())
            {
                var res = new List <ExMeeting>();

                var meetings = db.TblAppointments
                               .Include(x => x.Employee)
                               .Include(x => x.Employee).ThenInclude(x => x.Store)
                               .Include(x => x.Employee).ThenInclude(x => x.TblLocationEmployee)
                               .AsNoTracking()
                               .Where(x => x.UserId == request.UserId.Value &&
                                      !x.Canceled &&
                                      (x.ValidFrom.Date == request.Date.Date || x.ValidTo.Date == request.Date.Date));

                foreach (var dbMeeting in meetings)
                {
                    var meeting = new ExMeeting
                    {
                        Id = dbMeeting.Id,

                        // TODO ShopId ist eigentlich auf Location und ein MA kann bei mehreren Locations sein, also beim Meeting Location auch dazu?
                        ShopId = dbMeeting.Employee?.TblLocationEmployee?.FirstOrDefault()?.TblLocationId ??
                                 dbMeeting.Employee?.StoreId ?? -1,

                        ShopName = dbMeeting.Employee?.Store?.CompanyName ?? "-",
                        Staff    = Staff.GetExStaff(dbMeeting.Employee),
                        UserId   = dbMeeting.UserId,
                        Start    = dbMeeting.ValidFrom,
                        End      = dbMeeting.ValidTo,
                    };

                    res.Add(meeting);
                }

                return(res.OrderBy(x => x.Start).ToList());
            }
        }