public RequestForSampleImagesChildWindow(TblRequestForSampleViewModel requestForSample) { InitializeComponent(); _viewModel = new RequestforSampleImageViewModel(requestForSample); DataContext = _viewModel; }
public RequestforSampleImageViewModel(TblRequestForSampleViewModel requestForSample) { RequestForSample = requestForSample; MainRowList = new SortableCollectionView <TblStyleImageViewModel>(); MainRowList.CollectionChanged += MainRowList_CollectionChanged; SelectedMainRow = new TblStyleImageViewModel(); Client.GetTblRequestForSampleImageCompleted += (s, sv) => { MainRowList.Clear(); foreach (var row in sv.Result) { var newrow = new TblStyleImageViewModel(); newrow.InjectFrom(row); MainRowList.Add(newrow); } Loading = false; }; Client.MaxIserialOfRequestForSampleImageCompleted += (s, sv) => { FolderPath = "Uploads" + "/" + sv.imagePath; string folderName = FolderPath + "/" + RequestForSample.Code; var counter = 0; foreach (var item in MainRowList) { if (item.Iserial == 0) { var maxIserial = sv.Result; item.ImagePath = folderName + "/" + maxIserial + counter + ".png"; item.FolderPath = folderName; item.UploadFile(item.ImagePerRow); counter++; } } var isvalid = false; foreach (var tblStyleImageViewModel in MainRowList) { isvalid = Validator.TryValidateObject(tblStyleImageViewModel, new ValidationContext(tblStyleImageViewModel, null, null), null, true); if (!isvalid) { return; } } if (isvalid) { var savelist = new ObservableCollection <TblRequestForSampleImage>(); GenericMapper.InjectFromObCollection(savelist, MainRowList); Client.UpdateOrInsertTblRequestForSampleImageAsync(savelist); } }; Client.GetTblRequestForSampleImageAsync(RequestForSample.Iserial); Client.UpdateOrInsertTblRequestForSampleImageCompleted += (s, x) => Client.GetTblRequestForSampleImageAsync(RequestForSample.Iserial); Client.DeleteTblRequestForSampleImageCompleted += (s, ev) => { if (ev.Error != null) { throw ev.Error; } var oldrow = MainRowList.FirstOrDefault(x => x.Iserial == ev.Result); if (oldrow != null) { MainRowList.Remove(oldrow); } }; }