DMIT-2018 / 2018-sep-2022-a01-workbook-jthompsonnait

2018-sep-2022-a01-workbook-jthompsonnait created by GitHub Classroom
2 stars 2 forks source link

General Planning Implementation Tasks of Managing Play List in Chinook #2

Open jthompsonnait opened 2 years ago

jthompsonnait commented 2 years ago

This task list will be completed once the implementation plan has been outlined. This area is where one creates the task list that is associated with the milestone.

jthompsonnait commented 2 years ago

UI Experience

This comment outlines the actions that can happen on the forms. Actions are in response to the user interacting with the form, pressing buttons or controls.

PRG Post Redirect Get

  • Using routing parameters {searchtype?}/{searchvalue?}/{playlistname?}
  • PRG clicking the Clear empties bound properties and routing parameters (page only)
  • PRG clicking the Fetch will retrieve the existing playlist for the specified playlist name {playlistname?}
  • PRG Clicking the Fetch Artist or Fetch Album track will retrieve the tracks for the indicated search and display in a table {searchtype?}/{searchvalue?}

PLayList Management screen shot (1)

jthompsonnait commented 2 years ago

Data Models

The data models are the C# classes that will be coded in the folder (ViewModels) that holds the data classes in our solution. These classes represent the query class models and the command class models (CQRS).

CQRS image


Query Models

Artist and Album Track Fetch

PLayList Management screen shot (1)

Artist Album Track ERD

public class TrackSelection
{
    public int TrackID {get; set;}
    public string SongName {get; set;}
    public string AlbumTitle {get; set;}
    public string ArtistName {get; set;}
    public int Milliseconds {get; set;}
    public decimal Price {get; set'}
}

Current Playlist Tracks

Current Playlist ERD

public class PlayListTrackInfo
{
   public int PlayListID {get; set;}
   public int TrackID {get; set;}
   public int TrackNumber {get; set;}
   public string SongName {get; set;}
   public int Milliseconds {get; set;}
}

Command Models

Add Tracks

Add Track ERD

No model class, individual parameters

Username and PlaylistName and TrackID

Remove Track ERD

No model class, individual parameters

PlaylistID and List (TrackIDs)

Move Tracks (re-sequence playlist)

Move Track ERD

public class PlaylistTrackMove
{
   public int PlayListTrackID {get; set;}
   public int TrackNumber {get; set;}
}
jthompsonnait commented 2 years ago

Business Processing Requirements

This comment will describe the various methods that will be used for Command (CQRS) that alter the database. Queries are read-only and require on average no complex processing. However, commands require business rules validations and manipulations of one or many tables and/records. Therefore, the processing of commands should be outlined.

Include the method signature and a bullet list of processes

Add Track

void PlaylistTrack_AddTrack(string playlistName, string username, int trackid)