Exemplo n.º 1
0
        public ActionResult assign([Bind(Include = "TrackId,OrderNumber,OrderPlaced,OrderPlacedDate,PreparingParcel," +
                                                   "PrepParcelDate,InWarehouse,InWarehsDate," +
                                                   "IsReady,IsReadyDate,InTransit,InTransitDate,IsDeliver,IsDeliverDate," +
                                                   "colIdNum,idCompareNum,pin,comparePin,UserMail,delColect,driverId,driverNames")] TrackOrder trackOrder)
        {
            var driver = db.drivers.Where(a => a.id == trackOrder.driverId).FirstOrDefault();

            trackOrder.driverNames = (driver.employeeMidName == null) ? $"{driver.employeeName} {driver.employeeSurname}" : $"{driver.employeeName} {driver.employeeMidName} {driver.employeeSurname}";
            string message = $"Hi {trackOrder.driverNames}, You have been assigned new order ({trackOrder.OrderNumber}) ready for you to deliver" +
                             $" please check all orders assigned to you and find the corresponsing details. Please ensure the user insert the correct ID Number" +
                             $" and Pin when collecting the parcel as you will be liable if the parcel does not receive the parcel." +
                             $" For more info contact us at [email protected].";

            emailhelper.sendMail(driver.employeeEmail, $"New order to deliver", message);
            var orderToUpdate = db.Orders.FirstOrDefault(a => a.OrderNumber == trackOrder.OrderNumber);

            if (ModelState.IsValid)
            {
                orderToUpdate.AssignedDriver = trackOrder.driverNames;
                db.Entry(trackOrder).State   = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(trackOrder));
        }
Exemplo n.º 2
0
 public void Track_Test(int OrderID)
 {
     var        package = db.Packages.First(p => p.OrderID.Value.Equals(OrderID));
     CarrierAPI api     = package.Method.Carriers.CarrierAPI;
     TrackOrder track   = new TrackOrder(package);
     var        result  = track.Track(package.TrackingNumber);
 }
Exemplo n.º 3
0
        public HttpResponseMessage Create(HttpRequestMessage request, TrackOrderViewModel trackOrderVm)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;
                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else
                {
                    var newTrackOrder = new TrackOrder();
                    newTrackOrder.UpdateTrackOrder(trackOrderVm);
                    newTrackOrder.Status = true;
                    _trackOrderService.Add(newTrackOrder);
                    var order = _orderService.FindById(newTrackOrder.OrderId);
                    order.PaymentStatus = 1;
                    _orderService.Update(order);
                    _trackOrderService.SaveChanges();

                    var responseData = Mapper.Map <TrackOrder, TrackOrderViewModel>(newTrackOrder);
                    response = request.CreateResponse(HttpStatusCode.Created, responseData);
                }

                return response;
            }));
        }
Exemplo n.º 4
0
 public void CheckFedEx(int OrderID)
 {
     IRepository <Orders> Orders = new GenericRepository <Orders>(db);
     Orders      order           = Orders.Get(OrderID);
     TrackOrder  track           = new TrackOrder(order, order.Packages.First());
     TrackResult result          = track.Track();
 }
Exemplo n.º 5
0
        public IActionResult SetStatusOrder([FromBody] TrackOrder trackOrder)
        {
            if (!Enum.GetValues(typeof(StatusOrder)).Cast <StatusOrder>().Contains(trackOrder.Status))
            {
                return(NotFound("Status not found"));
            }
            var order = _service.GetById(trackOrder.OrderId);

            if (order == null)
            {
                return(NotFound("Order not found"));
            }
            if (!_userService.IsEntityExists(trackOrder.UserId))
            {
                return(NotFound("User not found"));
            }
            if (order.TrackersOrder.LastOrDefault().Status == trackOrder.Status)
            {
                return(Ok(true));
            }

            trackOrder.RegistrationDate = DateTime.Now;
            _trackOrderService.Add(trackOrder);
            return(Ok(true));
        }
Exemplo n.º 6
0
        protected void UpdateTrackOrderText(TrackOrder trackOrder)
        {
            switch (trackOrder)
            {
            case TrackOrder.Alphabetical:
                this.trackOrderText = ResourceUtils.GetString("Language_A_Z");
                break;

            case TrackOrder.ReverseAlphabetical:
                this.trackOrderText = ResourceUtils.GetString("Language_Z_A");
                break;

            case TrackOrder.ByAlbum:
                this.trackOrderText = ResourceUtils.GetString("Language_By_Album");
                break;

            case TrackOrder.ByRating:
                this.trackOrderText = ResourceUtils.GetString("Language_By_Rating");
                break;

            default:
                // Cannot happen, but just in case.
                this.trackOrderText = ResourceUtils.GetString("Language_By_Album");
                break;
            }

            RaisePropertyChanged(nameof(this.TrackOrderText));
        }
Exemplo n.º 7
0
        // parcel in warehouse to be separated (collection/delivery)
        public ActionResult inWare(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Error", "Home"));
            }
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            if (trackOrder == null)
            {
                return(RedirectToAction("Error", "Home"));
            }
            trackOrder.InWarehouse  = true;
            trackOrder.InWarehsDate = DateTime.Now.ToString();
            db.SaveChanges();
            var    user         = db.addInfoes.FirstOrDefault(a => a.addInfoOf == trackOrder.UserMail);
            string names        = $"{user.name} {user.surname}";
            string emailSubject = $"Order {trackOrder.OrderNumber} update";
            string message      = $"Hi { names}. There has been progress on order number { trackOrder.OrderNumber},When receiving or collecting the parcel please provide the pin - {trackOrder.pin} " +
                                  $",Please note that when collecting you will be required to put your ID number and pin({trackOrder.pin}) if you cannot provide the pin you will have to reset the pin on the website." +
                                  $"Track your order using order number for more information Contact us on [email protected] for enquiries";

            emailhelper.sendMail(trackOrder.UserMail, emailSubject, message);
            return(RedirectToAction("Index"));
        }
Exemplo n.º 8
0
 private void btnMyOrders_Click(object sender, EventArgs e)
 {
     //if(trackOrder==null)
     //{
     trackOrder = new TrackOrder(user);
     //}
     Contain(trackOrder);
 }
Exemplo n.º 9
0
        public ActionResult DeleteConfirmed(int id)
        {
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            db.TrackOrders.Remove(trackOrder);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 10
0
        public TrackOrder setTrackOrderDetails(Orders order, OrderItem orderItem)
        {
            TrackOrder trackOrderItem = new TrackOrder();

            trackOrderItem.Customer  = _customer;
            trackOrderItem.Order     = order;
            trackOrderItem.OrderItem = orderItem;
            trackOrderItem.Store     = _store;
            return(trackOrderItem);
        }
Exemplo n.º 11
0
 public static void UpdateTrackOrder(this TrackOrder trackOrder, TrackOrderViewModel trackOrderViewModel)
 {
     trackOrder.ID        = trackOrderViewModel.ID;
     trackOrder.OrderId   = trackOrderViewModel.OrderId;
     trackOrder.VehicleId = trackOrderViewModel.VehicleId;
     trackOrder.Longitude = trackOrderViewModel.Longitude;
     trackOrder.Latitude  = trackOrderViewModel.Latitude;
     trackOrder.Status    = trackOrderViewModel.Status;
     trackOrder.UserId    = trackOrderViewModel.UserId;
 }
Exemplo n.º 12
0
 public ActionResult Edit([Bind(Include = "TrackId,OrderNumber,OrderPlaced,OrderPlacedDate,PreparingParcel," +
                                          "PrepParcelDate,InWarehouse,InWarehsDate," +
                                          "IsReady,IsReadyDate,InTransit,InTransitDate,IsDeliver,IsDeliverDate," +
                                          "colIdNum,idCompareNum,pin,comparePin,UserMail,delColect,driverId,driverNames")] TrackOrder trackOrder)
 {
     if (ModelState.IsValid)
     {
         db.Entry(trackOrder).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(trackOrder));
 }
Exemplo n.º 13
0
        // GET: TrackOrders/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Error", "Home"));
            }
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            if (trackOrder == null)
            {
                return(RedirectToAction("Error", "Home"));
            }
            return(View(trackOrder));
        }
Exemplo n.º 14
0
        public ActionResult AddQuantityToCart(StoreInventoryVM inventoryVM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    _product = _storeBL.getProductByID(inventoryVM.ProductID);
                    _order   = JsonSerializer.Deserialize <Orders>(HttpContext.Session.GetString("orderData"));
                    _store   = _storeBL.getStoreByID(inventoryVM.StoreID);

                    OrderItem newOrderItem = new OrderItem();
                    newOrderItem.ProductID       = inventoryVM.ProductID;
                    newOrderItem.ProductQuantity = inventoryVM.InventoryQuantity;
                    newOrderItem = _storeBL.addOrderItem(newOrderItem);

                    _order.OrderTotal += _product.Price * newOrderItem.ProductQuantity;
                    HttpContext.Session.SetString("orderData", JsonSerializer.Serialize(_order));

                    if (HttpContext.Session.GetString("userData") != null)
                    {
                        TrackOrder track = new TrackOrder();
                        _customer         = JsonSerializer.Deserialize <Customer>(HttpContext.Session.GetString("userData"));
                        track.CustomerID  = _customer.ID;
                        track.OrderID     = _order.ID;
                        track.OrderItemID = newOrderItem.ID;
                        track.StoreID     = inventoryVM.StoreID;
                        _storeBL.addTrackOrderItem(track);
                    }
                    else
                    {
                        TrackOrder track = new TrackOrder();
                        track.CustomerID  = 8;
                        track.OrderID     = _order.ID;
                        track.OrderItemID = newOrderItem.ID;
                        track.StoreID     = inventoryVM.StoreID;
                        _storeBL.addTrackOrderItem(track);
                    }
                    int            storeItemQuantity = _storeBL.getInventoryQuantity(_product, _store);
                    StoreInventory storeInventory    = _storeBL.getInventoryItem(_product, _store);
                    storeInventory.InventoryQuantity = storeItemQuantity - inventoryVM.InventoryQuantity;
                    _storeBL.updateStoreInventory(storeInventory);
                    return(RedirectToAction(nameof(Index)));
                }
                catch
                {
                    return(View());
                }
            }
            return(View());
        }
Exemplo n.º 15
0
        protected void SetTrackOrder(string settingName)
        {
            TrackOrder savedTrackOrder = (TrackOrder)SettingsClient.Get<int>("Ordering", settingName);

            if ((!this.EnableRating & savedTrackOrder == TrackOrder.ByRating) | (!this.CanOrderByAlbum & savedTrackOrder == TrackOrder.ByAlbum))
            {
                this.TrackOrder = TrackOrder.Alphabetical;
            }
            else
            {
                // Only change the TrackOrder if it is not correct
                if (this.TrackOrder != savedTrackOrder) this.TrackOrder = savedTrackOrder;
            }
        }
Exemplo n.º 16
0
        // GET: TrackOrders/MarkComplete/5
        public ActionResult MarkComplete(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Error", "Home"));
            }
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            if (trackOrder == null)
            {
                return(RedirectToAction("Error", "Home"));
            }
            return(View(trackOrder));
        }
Exemplo n.º 17
0
        // GET: TrackOrders/Edit/5
        public ActionResult transit(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Error", "Home"));
            }
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            if (trackOrder == null)
            {
                //return HttpNotFound();
                return(RedirectToAction("Error", "Home"));
            }
            if (trackOrder.delColect == "Collect")
            {
                //RedirectToAction("Error");
                return(RedirectToAction("Error", "Home"));
            }

            trackOrder.InTransit     = true;
            trackOrder.InTransitDate = DateTime.Now.ToString();
            var    user         = db.addInfoes.FirstOrDefault(a => a.addInfoOf == trackOrder.UserMail);
            var    driver       = db.drivers.FirstOrDefault(d => d.id == trackOrder.driverId);
            string names        = $"{user.name} {user.surname}";
            string emailSubject = $"Order {trackOrder.OrderNumber} update";
            string message      = $"Hi { names}. We have some Good :) news for order number { trackOrder.OrderNumber}," +
                                  $"Your order is on it's way for delivery please make sure to bring your ID when coming to the driver and don't forget " +
                                  $"your pin as it is required for you to get the parcel." +
                                  $"Contact us on [email protected] for enquiries";
            string messageTodriver = $"Hi { trackOrder.driverNames}.You just updated the status for order number { trackOrder.OrderNumber}," +
                                     $" We understand the order is in on it way to the customer ensure the customer provide the ID number to the app  and correct pin." +
                                     $" Contact us on [email protected] for enquiries";
            string sent         = emailhelper.sendMail(trackOrder.UserMail, emailSubject, message);
            string sentToDriver = emailhelper.sendMail(driver.employeeEmail, emailSubject, messageTodriver);

            if (sent == "sent" && sentToDriver == "sent")
            {
                db.SaveChanges();
                return(RedirectToAction("assignedToMe"));
            }
            else
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
Exemplo n.º 18
0
        public ActionResult MarkComplete([Bind(Include = "TrackId,OrderNumber,OrderPlaced,OrderPlacedDate,PreparingParcel," +
                                                         "PrepParcelDate,InWarehouse,InWarehsDate," +
                                                         "IsReady,IsReadyDate,InTransit,InTransitDate,IsDeliver,IsDeliverDate," +
                                                         "colIdNum,idCompareNum,pin,comparePin,UserMail,delColect,driverId,driverNames")] TrackOrder trackOrder)
        {
            string message = null;

            if (trackOrder.idCompareNum == trackOrder.colIdNum && trackOrder.pin == trackOrder.comparePin)
            {
                if (ModelState.IsValid)
                {
                    trackOrder.IsDeliverDate = DateTime.Now.ToString();
                    trackOrder.IsDeliver     = true;
                    var    user         = db.addInfoes.FirstOrDefault(a => a.addInfoOf == trackOrder.UserMail);
                    string names        = $"{user.name} {user.surname}";
                    string emailSubject = $"Order {trackOrder.OrderNumber} update";
                    if (trackOrder.delColect == "Collect")
                    {
                        message = $"Hi { names}. There has been progress on order number { trackOrder.OrderNumber}," +
                                  $"Your order hase been collected from our. Thank you for putting your faith in us :)." +
                                  $"Contact us on [email protected] for enquiries";
                    }
                    else
                    {
                        message = $"Hi { names}. There has been progress on order number { trackOrder.OrderNumber}," +
                                  $"Your order hase been delivered by our drivers and collected.Thank you for putting your faith in us :)." +
                                  $"Contact us on [email protected] for enquiries";
                    }
                    emailhelper.sendMail(trackOrder.UserMail, emailSubject, message);

                    db.Entry(trackOrder).State = EntityState.Modified;
                    db.SaveChanges();
                    if (trackOrder.delColect == "Deliver")
                    {
                        return(RedirectToAction("assignedToMe"));
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
            }
            return(View(trackOrder));
        }
Exemplo n.º 19
0
        // ready for collection
        public ActionResult ready(int?id)
        {
            if (id == null)
            {
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                return(RedirectToAction("Error", "Home"));
            }
            TrackOrder trackOrder = db.TrackOrders.Find(id);

            if (trackOrder == null)
            {
                return(RedirectToAction("Error", "Home"));
            }

            if (trackOrder.delColect == "Deliver")
            {
                return(RedirectToAction("Error", "Home"));
            }

            trackOrder.IsReadyDate = DateTime.Now.ToString();
            var    user         = db.addInfoes.FirstOrDefault(a => a.addInfoOf == trackOrder.UserMail);
            string names        = $"{user.name} {user.surname}";
            string emailSubject = $"Order {trackOrder.OrderNumber} update";
            string message      = $"Hi { names}. We have some Good :) news for order number { trackOrder.OrderNumber}," +
                                  $"Your order is ready for collection please make sure to bring your ID and don't forget " +
                                  $"your pin as it is required for you to get the parcel." +
                                  $"Contact us on [email protected] for enquiries";
            string sent = emailhelper.sendMail(trackOrder.UserMail, emailSubject, message);

            if (sent == "sent")
            {
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
Exemplo n.º 20
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            TrackOrder kd   = new TrackOrder();
            RootObject root = JsonConvert.DeserializeObject <RootObject>
                                  (kd.getOrderTracesByJson(cbox_ShipperCode.Text, txt_LogisticCode.Text));

            if (root.State == "0")
            {
                this.txt_State.Text = "暂无轨迹信息";
            }
            else if (root.State == "1")
            {
                this.txt_State.Text = "已揽收";
            }
            else if (root.State == "2")
            {
                this.txt_State.Text = "在途中";
            }
            else if (root.State == "3")
            {
                this.txt_State.Text = "签收";
            }
            else if (root.State == "4")
            {
                this.txt_State.Text = "问题件";
            }
            if (root.Traces != null)
            {
                this.txt_AcceptTime.Text    = root.Traces[0].AcceptTime;
                this.txt_AcceptStation.Text = root.Traces[0].AcceptStation;
                this.txt_EBusinessID.Text   = root.EBusinessID;
            }
            else
            {
                MessageBox.Show("不存在该订单");
            }
        }
Exemplo n.º 21
0
        protected async Task GetTracksAsync(IList <string> artists, IList <string> genres, IList <string> albumKeys, TrackOrder trackOrder)
        {
            IList <Track> tracks = null;

            if (!artists.IsNullOrEmpty())
            {
                tracks = await this.trackRepository.GetAlbumTracksAsync(artists);
            }
            else if (!genres.IsNullOrEmpty())
            {
                tracks = await this.trackRepository.GetGenreTracksAsync(genres);
            }
            else if (!albumKeys.IsNullOrEmpty())
            {
                tracks = await this.trackRepository.GetAlbumTracksAsync(albumKeys);
            }
            else
            {
                tracks = await this.trackRepository.GetTracksAsync();
            }

            await this.GetTracksCommonAsync(await this.container.ResolveTrackViewModelsAsync(tracks), trackOrder);
        }
Exemplo n.º 22
0
 public void addTrackOrderItem(TrackOrder newTrackOrder)
 {
     _repo.addTrackOrderItem(newTrackOrder);
 }
Exemplo n.º 23
0
        protected async Task GetTracksCommonAsync(IList <Track> tracks, TrackOrder trackOrder)
        {
            try
            {
                // Create new ObservableCollection
                ObservableCollection <TrackViewModel> trackViewModels = new ObservableCollection <TrackViewModel>(await this.container.ResolveTrackViewModelsAsync(tracks));

                // Do we need to show the TrackNumber? // TODO: can this be improved?
                bool showTracknumber = this.TrackOrder == TrackOrder.ByAlbum;

                await Task.Run(() =>
                {
                    foreach (TrackViewModel vm in trackViewModels)
                    {
                        vm.ShowTrackNumber = showTracknumber;
                    }
                });

                // Order the Tracks
                List <TrackViewModel> orderedTracks = await EntityUtils.OrderTracksAsync(trackViewModels, trackOrder);

                // Unbind to improve UI performance
                Application.Current.Dispatcher.Invoke(() =>
                {
                    if (this.TracksCvs != null)
                    {
                        this.TracksCvs.Filter -= new FilterEventHandler(TracksCvs_Filter);
                    }
                    this.TracksCvs = null;
                    this.Tracks    = null;
                });

                // Populate ObservableCollection
                Application.Current.Dispatcher.Invoke(() => this.Tracks = trackViewModels);
            }
            catch (Exception ex)
            {
                LogClient.Error("An error occurred while getting Tracks. Exception: {0}", ex.Message);

                // Failed getting Tracks. Create empty ObservableCollection.
                Application.Current.Dispatcher.Invoke(() =>
                {
                    this.Tracks = new ObservableCollection <TrackViewModel>();
                });
            }

            Application.Current.Dispatcher.Invoke(() =>
            {
                // Populate CollectionViewSource
                this.TracksCvs = new CollectionViewSource {
                    Source = this.Tracks
                };
                this.TracksCvs.Filter += new FilterEventHandler(TracksCvs_Filter);

                // Update count
                this.TracksCount = this.TracksCvs.View.Cast <TrackViewModel>().Count();

                // Group by Album if needed
                if (this.TrackOrder == TrackOrder.ByAlbum)
                {
                    this.TracksCvs.GroupDescriptions.Add(new PropertyGroupDescription("GroupHeader"));
                }
            });

            // Update duration and size
            this.CalculateSizeInformationAsync(this.TracksCvs);

            // Show playing Track
            this.ShowPlayingTrackAsync();
        }
Exemplo n.º 24
0
        public async Task <IList <TrackViewModel> > GetGenreTracksAsync(IList <string> selectedGenres, TrackOrder trackOrder)
        {
            IList <Track> tracks = await this.trackRepository.GetGenreTracksAsync(selectedGenres);

            IList <TrackViewModel> orderedTracks = await EntityUtils.OrderTracksAsync(await this.container.ResolveTrackViewModelsAsync(tracks), trackOrder);

            return(orderedTracks);
        }
Exemplo n.º 25
0
        protected async Task GetTracksAsync(IList <string> artists, IList <string> genres, IList <string> albumKeys, TrackOrder trackOrder)
        {
            if (artists.IsNullOrEmpty() & genres.IsNullOrEmpty() & albumKeys.IsNullOrEmpty())
            {
                await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(), trackOrder);
            }
            else
            {
                if (!albumKeys.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetAlbumTracksAsync(albumKeys), trackOrder);

                    return;
                }

                if (!artists.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetArtistTracksAsync(artists), trackOrder);

                    return;
                }

                if (!genres.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetGenreTracksAsync(genres), trackOrder);

                    return;
                }
            }
        }
 public async Task GetTracksAsync(IList <Playlist> selectedPlaylists, TrackOrder trackOrder)
 {
     await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(selectedPlaylists), trackOrder);
 }
Exemplo n.º 27
0
 public void addTrackOrderItem(TrackOrder newTrackOrder)
 {
     _context.TrackOrders.Add(_mapper.ParseTrackOrder(newTrackOrder));
     _context.SaveChanges();
 }
Exemplo n.º 28
0
 public void CheckDHL(int OrderID)
 {
     Orders      order  = db.Orders.Find(OrderID);
     TrackOrder  track  = new TrackOrder(order, order.Packages.First(p => p.IsEnable.Value));
     TrackResult result = track.Track();
 }
Exemplo n.º 29
0
 public void Box_Test(string boxID)
 {
     var        box    = db.Box.Find(boxID);
     TrackOrder track  = new TrackOrder();
     var        result = track.Track(box, db.ShippingMethod.Find(box.FirstMileMethod).Carriers.CarrierAPI);
 }
Exemplo n.º 30
0
        protected async Task GetTracksAsync(IList <Artist> selectedArtists, IList <Genre> selectedGenres, IList <Album> selectedAlbums, TrackOrder trackOrder)
        {
            if (selectedArtists.IsNullOrEmpty() & selectedGenres.IsNullOrEmpty() & selectedAlbums.IsNullOrEmpty())
            {
                await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(), trackOrder);
            }
            else
            {
                if (!selectedAlbums.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(selectedAlbums), trackOrder);

                    return;
                }

                if (!selectedArtists.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(selectedArtists), trackOrder);

                    return;
                }

                if (!selectedGenres.IsNullOrEmpty())
                {
                    await this.GetTracksCommonAsync(await this.trackRepository.GetTracksAsync(selectedGenres), trackOrder);

                    return;
                }
            }
        }