public TrainPattern(ImageUnit unit) { Id = unit.Id; Image = unit.Image; }
private void SetUpDataProcessors() { IXmlDataService xmlDataService = new XmlDataService(Configuration, GameData, DefaultData); DataHero dataHero = new DataHero(new HeroDataParser(xmlDataService.GetInstance(), (HeroOverrideLoader)XmlDataOverriders.GetOverrider(typeof(HeroDataParser)))); DataUnit dataUnit = new DataUnit(new UnitParser(xmlDataService.GetInstance(), (UnitOverrideLoader)XmlDataOverriders.GetOverrider(typeof(UnitParser)))); DataMatchAward dataMatchAward = new DataMatchAward(new MatchAwardParser(xmlDataService.GetInstance(), (MatchAwardOverrideLoader)XmlDataOverriders.GetOverrider(typeof(MatchAwardParser)))); DataHeroSkin dataHeroSkin = new DataHeroSkin(new HeroSkinParser(xmlDataService.GetInstance())); DataMount dataMount = new DataMount(new MountParser(xmlDataService.GetInstance())); DataBanner dataBanner = new DataBanner(new BannerParser(xmlDataService.GetInstance())); DataSpray dataSpray = new DataSpray(new SprayParser(xmlDataService.GetInstance())); DataAnnouncer dataAnnouncer = new DataAnnouncer(new AnnouncerParser(xmlDataService.GetInstance())); DataVoiceLine dataVoiceLine = new DataVoiceLine(new VoiceLineParser(xmlDataService.GetInstance())); DataPortrait dataPortrait = new DataPortrait(new PortraitParser(xmlDataService.GetInstance())); DataEmoticon dataEmoticon = new DataEmoticon(new EmoticonParser(xmlDataService.GetInstance())); DataEmoticonPack dataEmoticonPack = new DataEmoticonPack(new EmoticonPackParser(xmlDataService.GetInstance())); DataBehaviorVeterancy dataBehaviorVeterancy = new DataBehaviorVeterancy(new BehaviorVeterancyParser(xmlDataService.GetInstance())); ImageHero filesHero = new ImageHero(CASCHotsStorage?.CASCHandler, StoragePath); ImageUnit filesUnit = new ImageUnit(CASCHotsStorage?.CASCHandler, StoragePath); ImageMatchAward filesMatchAward = new ImageMatchAward(CASCHotsStorage?.CASCHandler, StoragePath); ImageAnnouncer filesAnnouncer = new ImageAnnouncer(CASCHotsStorage?.CASCHandler, StoragePath); ImageVoiceLine filesVoiceLine = new ImageVoiceLine(CASCHotsStorage?.CASCHandler, StoragePath); ImageSpray filesSpray = new ImageSpray(CASCHotsStorage?.CASCHandler, StoragePath); ImageEmoticon filesEmoticon = new ImageEmoticon(CASCHotsStorage?.CASCHandler, StoragePath); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.HeroData), Name = dataHero.Name, Parse = (localization) => dataHero.Parse(localization), Validate = (localization) => dataHero.Validate(localization), Extract = (data) => filesHero.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Unit), Name = dataUnit.Name, Parse = (localization) => dataUnit.Parse(localization), Validate = (localization) => dataUnit.Validate(localization), Extract = (data) => filesUnit.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.MatchAward), Name = dataMatchAward.Name, Parse = (localization) => dataMatchAward.Parse(localization), Validate = (localization) => dataMatchAward.Validate(localization), Extract = (data) => filesMatchAward.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.HeroSkin), Name = dataHeroSkin.Name, Parse = (localization) => dataHeroSkin.Parse(localization), Validate = (localization) => dataHeroSkin.Validate(localization), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Mount), Name = dataMount.Name, Parse = (localization) => dataMount.Parse(localization), Validate = (localization) => dataMount.Validate(localization), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Banner), Name = dataBanner.Name, Parse = (localization) => dataBanner.Parse(localization), Validate = (localization) => dataBanner.Validate(localization), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Spray), Name = dataSpray.Name, Parse = (localization) => dataSpray.Parse(localization), Validate = (localization) => dataSpray.Validate(localization), Extract = (data) => filesSpray.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Announcer), Name = dataAnnouncer.Name, Parse = (localization) => dataAnnouncer.Parse(localization), Validate = (localization) => dataAnnouncer.Validate(localization), Extract = (data) => filesAnnouncer.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.VoiceLine), Name = dataVoiceLine.Name, Parse = (localization) => dataVoiceLine.Parse(localization), Validate = (localization) => dataVoiceLine.Validate(localization), Extract = (data) => filesVoiceLine.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Portrait), Name = dataPortrait.Name, Parse = (localization) => dataPortrait.Parse(localization), Validate = (localization) => dataPortrait.Validate(localization), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Emoticon), Name = dataEmoticon.Name, Parse = (localization) => dataEmoticon.Parse(localization), Validate = (localization) => dataEmoticon.Validate(localization), Extract = (data) => filesEmoticon.ExtractFiles(data), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.EmoticonPack), Name = dataEmoticonPack.Name, Parse = (localization) => dataEmoticonPack.Parse(localization), Validate = (localization) => dataEmoticonPack.Validate(localization), }); DataProcessors.Add(new DataProcessor() { IsEnabled = ExtractDataOption.HasFlag(ExtractDataOption.Veterancy), Name = dataBehaviorVeterancy.Name, Parse = (localization) => dataBehaviorVeterancy.Parse(localization), Validate = (localization) => dataBehaviorVeterancy.Validate(localization), }); }
public TrainPattern(ImageUnit unit) { this.Id = unit.Id; this.Image = unit.Image; }
public async Task <string> UploadFile(HttpPostedFile file, AdditionalData fileData, int spaceId, int parentId) { _logger.WriteInfo("Upload method started"); var user = await _usersService.GetCurrentUser(); var localUser = await _unitOfWork?.Users?.Query.FirstOrDefaultAsync(x => x.GlobalId == user.id); var space = await _unitOfWork?.Spaces?.GetByIdAsync(spaceId); var parentFolder = await _unitOfWork?.Folders.GetByIdAsync(parentId); List <User> ReadPermittedUsers = new List <User>(); ReadPermittedUsers.Add(localUser); List <User> ModifyPermittedUsers = new List <User>(); ModifyPermittedUsers.Add(localUser); _logger.WriteInfo("Getting file info"); string filename = fileData.Name + fileData.Extension; string mimeType = GetMimeType(filename); var isImage = IsImageMime(mimeType); _logger.WriteInfo("File name: " + filename + ", Mime type: " + mimeType); // File's content. Stream filestream = file.InputStream; byte[] byteArray = ReadFully(filestream); MemoryStream stream = new MemoryStream(byteArray); _logger.WriteInfo("File content stream: " + stream.Length); DriveService service; try { _logger.WriteInfo("Authorization started"); service = AuthorizationService.ServiceAccountAuthorization(); _logger.WriteInfo("Authorization succeeded"); } catch (Exception e) { throw new Exception("Failed to authorize Drive service " + e.Message); } Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File(); body.Name = filename; body.MimeType = mimeType; body.Parents = null; _logger.WriteInfo("File body created: " + body.Name); if (isImage) { try { var image_link = await UploadToDriveAsync(service, body, stream, mimeType); var prev_filename = "prev_" + fileData.Name + ".jpeg"; body.Name = prev_filename; body.MimeType = "image/jpeg"; var img_stream = MakeThumbnail(stream); var prev_link = await UploadToDriveAsync(service, body, img_stream, "image/jpeg"); var imageDto = new ImageUnit() { Name = filename, FileType = FileType.Images, Link = image_link, Prev_Link = prev_link, Description = fileData.Description, CreatedAt = DateTime.Now, LastModified = DateTime.Now, IsDeleted = false, Space = space, FolderUnit = parentFolder, Owner = await _unitOfWork?.Users?.Query.FirstOrDefaultAsync(u => u.GlobalId == user.id), ReadPermittedUsers = ReadPermittedUsers, ModifyPermittedUsers = ModifyPermittedUsers }; _unitOfWork?.Files?.Create(imageDto); await _unitOfWork?.SaveChangesAsync(); } catch (Exception e) { throw e; } } else { string link = ""; try { _logger.WriteInfo("Begin upload"); link = await UploadToDriveAsync(service, body, stream, mimeType); _logger.WriteInfo("Upload completed"); } catch (Exception e) { throw new Exception("Failed to upload file to drive " + e.Message); } try { var fileDto = new FileUnit() { Name = filename, FileType = FileType.Uploaded, Link = link, Description = fileData.Description, CreatedAt = DateTime.Now, LastModified = DateTime.Now, IsDeleted = false, Space = space, FolderUnit = parentFolder, Owner = await _unitOfWork?.Users?.Query.FirstOrDefaultAsync(u => u.GlobalId == user.id), ReadPermittedUsers = ReadPermittedUsers, ModifyPermittedUsers = ModifyPermittedUsers }; _unitOfWork?.Files?.Create(fileDto); await _unitOfWork?.SaveChangesAsync(); _logger.WriteInfo("File saved to database"); } catch (Exception e) { _logger.WriteError(e, e.Message); throw new Exception("Failed to save file to data base " + e.Message); } } return("Files uploaded successfully"); }