//This creates the list of frames from the CSV file. //I create the list hesre as when I had it in the framePicker class, the first time the app opens there was no frames displayed //I think this was because the funciton that loads the csv file runs async so i dont think the frames had been loaded yet private async Task <List <Frame> > generateFrames() { List <Frame> frames = new List <Frame>(); //Opens csv file that contains frame details. each line is a record. List <String> data = new List <String>(); StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///CSV/Frames.csv")); Stream fileStream = await file.OpenStreamForReadAsync(); using (StreamReader fileReader = new StreamReader(fileStream)) { string line; string[] row; fileReader.ReadLine(); //Reads file line by line while ((line = fileReader.ReadLine()) != null) { //Splits csv file row = line.Split(','); //Sets properties FrameProperties frameProperties = new FrameProperties(row[0], row[1], row[2], row[3], row[4], row[5], row[6], Convert.ToInt32(row[7]), Convert.ToInt32(row[8]), Convert.ToInt32(row[9]), Convert.ToInt64(row[10]), row[11], row[12], Convert.ToBoolean(Convert.ToInt16(row[13])), Convert.ToBoolean(Convert.ToInt16(row[14])), row[15].Split(' '), row[16].Split(' ')); //Sets images and attaches imageFailed event. This sets the image uri to a default is no image is found at uri from CSV file var img1 = new BitmapImage(); var img2 = new BitmapImage(); var img3 = new BitmapImage(); img1.ImageFailed += imageFailed; img2.ImageFailed += imageFailed; img3.ImageFailed += imageFailed; img1.UriSource = new Uri("ms-appx://" + row[17], UriKind.Absolute); img2.UriSource = new Uri("ms-appx://" + row[18], UriKind.Absolute); img3.UriSource = new Uri("ms-appx://" + row[19], UriKind.Absolute); FrameImages frameImages = new FrameImages(new List <ImageSource>() { img1, img2, img3 }, img2, img3); //Creates new frame instance and adds to list Graded_Unit_2.Frame frame = new Graded_Unit_2.Frame(frameProperties, frameImages); frames.Add(frame); } } return(frames); }
//Setters public void setFrameImages(FrameImages frameImages) { this.frameImages = frameImages; }
//Constructor public Frame(FrameProperties frameProperties, FrameImages frameImages) { this.frameProperties = frameProperties; this.frameImages = frameImages; }