public Item GetItemModel(CsvItem csv) { return(new Item() { Id = csv.Id, Name = csv.Name, Price = csv.Price, SmallImageUrl = csv.SmallImageUrl, ImageUrl = csv.ImageUrl, CardImageUrl = csv.CardImageUrl, Description = csv.Description, ItemTypeId = csv.ItemTypeId, SubTypeId = csv.SubTypeId, Refinable = csv.Refinable, Attack = csv.Attack, MagicAttack = csv.MagicAttack, RequiredLevel = csv.RequiredLevel, LimitLevel = csv.LimitLevel, ItemLevel = csv.ItemLevel, Weight = csv.Weight, Defense = csv.Defense, Slots = csv.Slots, UnidName = csv.UnidName, CardPrefix = csv.CardPrefix, }); }
/// <summary> /// CSVファイル読み込み処理 /// </summary> /// <param name="row"></param> /// <param name="file"></param> /// <param name="rowCount"></param> /// <returns></returns> private CsvItem ReadCsvItem(string[] row) { //2.項目が抜けている場合の対策 CsvItem item = new CsvItem(); item.OrderNumber = row[0]; item.ScheduledOn = row[1]; item.ProcessingDivision = row[2]; item.StudyTypeCode = row[3]; item.StudyTypeName = row[4]; item.PatientId = row[5]; item.PatientKanjiName = row[6]; item.PatientKanaName = row[7]; item.PatientBirthDate = row[8]; item.PatientGender = row[9]; //3.撮影項目コードと撮影項目名称が対になっていない場合の対策 //撮影項目コードと撮影項目名称をセットにする item.ShotItemSet = this.ShotItemSet(row); //4.Validation Errorの対策 ValidationError validation = new ValidationError(); validation.ValidateItems(item); return(item); }
/// <summary> /// CSVファイルの各項目のバリデーション /// </summary> /// <param name="item"></param> public void ValidateItems(CsvItem item) { //オーダー番号のバリデーション ValidateOrderNumber(item.OrderNumber); //検査日付のバリデーション ValidateScheduledOn(item.ScheduledOn); //処理区分のバリデーション ValidateProcessingDivision(item.ProcessingDivision); //検査種別コードのバリデーション ValidateStudyTypeCode(item.StudyTypeCode); //検査種別名称のバリデーション ValidateStudyTypeName(item.StudyTypeName); //患者IDのバリデーション ValidatePatientId(item.PatientId); //患者漢字氏名のバリデーション ValidatePatientKanjiName(item.PatientKanjiName); //患者カナ氏名のバリデーション ValidatePatientKanaName(item.PatientKanaName); //生年月日のバリデーション ValidatePatientBirthDate(item.PatientBirthDate); //性別のバリデーション ValidatePatientGender(item.PatientGender); foreach (var shotItem in item.ShotItemSet) { //撮影項目コードのバリデーション ValidateShotItemCode(shotItem.ShotItemCode); //撮影項目名称のバリデーション ValidateShotItemName(shotItem.ShotItemName); } }
public static void Main() { string inputCSV = @"""Type"":""#Microsoft.Azure"",""Email"":""*****@*****.**"",""DisplayName"":""abc"",""Dpt"":""home"" ""Type"":""#Microsoft.Azure"",""Email"":""*****@*****.**"",""DisplayName"":""xyz"",""Dpt"":""home"""; // ReadAllLines mock string[] lines = inputCSV.Split(new[] { Environment.NewLine }, StringSplitOptions.None); { // The Json Way var bringJsonBack = "[\n{" + string.Join("},\n{", lines) + "}\n]"; var results = JsonConvert.DeserializeObject <List <CsvItem> >(bringJsonBack); results.Dump(); } { // Your working way var results = new List <CsvItem>(); foreach (var line in lines) { var temp = new CsvItem(); string[] strS1 = line.Split(','); foreach (string S1 in strS1) { string[] strS2 = S1.Split(':'); // You have a part Before the : and one after we just string check to know what property we re on. if (strS2[0].Trim('"') == "Email") { temp.Email = strS2[1].Trim('"'); } if (strS2[0].Trim('"') == "DisplayName") { temp.DisplayName = strS2[1].Trim('"'); } if (strS2[0].Trim('"') == "Dpt") { temp.Dpt = strS2[1].Trim('"'); } } results.Add(temp); } results.Dump(); } { // LinQ Version of your algo. var results = lines .Select(x => x.Split(',')) .Select(x => new CsvItem { Email = x[1].Split(':')[1].Trim('"'), DisplayName = x[2].Split(':')[1].Trim('"'), Dpt = x[3].Split(':')[1].Trim('"') }) .ToList(); results.Dump(); } }
/// <summary> /// 患者テーブルに患者情報を登録 /// </summary> /// <param name="item"></param> /// <returns></returns> private Patients RegisterPatient(CsvItem item) { Patients patient = new Patients(); patient.PatientId = item.PatientId; patient.PatientKanjiName = item.PatientKanjiName; patient.PatientKanaName = item.PatientKanaName; patient.PatientBirthDate = DateTime.Parse(item.PatientBirthDate); patient.PatientGender = item.PatientGender; return(patient); }
/// <summary> /// 検査テーブルに検査情報を登録 /// </summary> /// <param name="item"></param> /// <returns></returns> private ValidatedStudyItems RegisterStudy(CsvItem item) { ValidatedStudyItems studyItems = new ValidatedStudyItems(); studyItems.OrderNumber = int.Parse(item.OrderNumber); studyItems.ScheduledOn = DateTime.Parse(item.ScheduledOn); studyItems.ProcessingDivision = int.Parse(item.ProcessingDivision); studyItems.StudyTypeCode = item.StudyTypeCode; studyItems.StudyTypeName = item.StudyTypeName; studyItems.ShotItemSet = item.ShotItemSet; return(studyItems); }
public static Item ToImmutableItem(this CsvItem source) { return (new Item() { Id = source.Id, Name = source.Name, Manufacturer = source.Manufacturer, Model = source.Model, Quantity = source.Quantity, Category = source.Category, Spec = source.Spec, Appearance = source.Appearance, AssignedLocation = source.AssignedLocation, CurrentLocation = source.CurrentLocation, IsLoan = source.IsLoan, Origin = source.Origin, AdditionalInformation = source.AdditionalInformation, Photos = source.Photos.ToList() }); }
public DataItem(MapChipCSV _mapChip, CsvItem _csvItem) { CsvItemData item_data = new CsvItemData(); foreach (CsvItemData data in _csvItem.All) { if (data.item_id == _mapChip.item_id) { item_data = data; } } item_serial = _mapChip.serial; item_id = _mapChip.item_id; category = item_data.category; x = _mapChip.x; y = _mapChip.y; width = item_data.size; //_mapChip.width height = item_data.size; //_mapChip.height status = 1; level = 1; collect_time = TimeManager.StrNow();; create_time = TimeManager.StrNow();; }
/// <summary> /// CSVファイル取り込み処理 /// </summary> public void Import() { //フォルダの設定 monitoredFolderPath = Settings.Default.MonitoredFolder; errorFolderPath = Settings.Default.ErrorFolder; processedFolderPath = Settings.Default.ProcessedFolder; //ファイル形式の設定 fileFormat = Settings.Default.FileFormat; //監視対象フォルダ内のCSVファイルを取得 IEnumerable <string> Monitoredfiles = Directory.EnumerateFiles(monitoredFolderPath, fileFormat, System.IO.SearchOption.AllDirectories); try { foreach (string file in Monitoredfiles) { using (TextFieldParser parser = new TextFieldParser(file, Encoding.GetEncoding(932))) { //ヘッダ行読み飛ばし parser.ReadLine(); //行数の初期値(2行目から取り込み) int rowCount = 2; //1.フォーマットが不正の場合の対策 parser.TextFieldType = FieldType.Delimited; //区切り文字を「,」に設定 parser.SetDelimiters(","); //読み込むべき行がまだ残っているかどうか判定 while (!parser.EndOfData) { try { //現在行のフィールドを配列に入れる string[] row = parser.ReadFields(); //CSV項目クラスに入れる CsvItem items = this.ReadCsvItem(row); //患者情報を登録 string patientId = DbManager.ImportPatientInfo(RegisterPatient(items)); //検査情報を登録 DbManager.ImportStudyInfo(patientId, RegisterStudy(items)); //読み込んだファイルは処理済みフォルダへ移動 this.TransferToProcessedFolder(file); } catch (Exception e) { int retryLeft = 0; //指定された回数だけ再処理 if (retryLeft < Settings.Default.RetryCount) { retryLeft++; parser.Close(); Import(); } else { //読み込めないファイルはエラーフォルダへ移動 this.TransferToErrorFolder(file); logger.Error(e.Message); logger.Error(file); logger.Error(rowCount); } } rowCount++; } } } } catch (DirectoryNotFoundException ex) { logger.Error(ex.Message); logger.Error(monitoredFolderPath); } catch (Exception ex) { logger.Error(ex.Message); } }
// Update is called once per frame void Update() { bool bInit = false; if (m_eStepPre != m_eStep) { m_eStepPre = m_eStep; bInit = true; } switch (m_eStep) { case STEP.DATAMANAGER_SETUP: if (bInit) { /* * GameObject pref = PrefabManager.Instance.PrefabLoadInstance ("test"); * paramtest script = pref.GetComponent<paramtest> (); * Debug.Log (script.list.Count); * script.list.Add (new DataItem ()); */ } if (SpriteManager.Instance.IsIdle()) { m_goRoot.SetActive(true); m_btnStart.gameObject.SetActive(false); m_eStep = STEP.SOUND_LOAD; } if (m_csLoading != null) { m_csLoading.ViewPercent(0.0f); } break; case STEP.SOUND_LOAD: if (bInit) { foreach (MasterAudioCSV data in DataManager.master_audio_list) { if (data.audio_type != 1) { SoundManager.Instance.AddLoadFile(data.filename); } } } if (m_csLoading != null) { m_csLoading.ViewPercent(0.0f); } if (SoundManager.Instance.IsIdle()) { m_btnStart.gameObject.SetActive(true); m_eStep = STEP.IDLE; if (ReviewManager.Instance.IsReadyReview()) { m_eStep = STEP.REVIEW; } } break; case STEP.REVIEW: if (bInit) { GameObject obj = PrefabManager.Instance.MakeObject("prefab/CtrlReviewWindow", m_goRoot.transform.parent.gameObject); m_reviewWindow = obj.GetComponent <CtrlReviewWindow> (); m_reviewWindow.Initialize(); m_goRoot.SetActive(false); } if (m_reviewWindow.IsEnd()) { m_goRoot.SetActive(true); Destroy(m_reviewWindow.gameObject);; m_eStep = STEP.IDLE; } break; case STEP.IDLE: if (bInit) { m_btnStart.TriggerClear(); m_btnBackup.TriggerClear(); } if (m_btnStart.ButtonPushed) { m_eStep = STEP.DB_SETUP; SoundManager.Instance.PlaySE("se_cleanup"); } else if (m_btnBackup.ButtonPushed) { string backupDB = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN_BK); if (System.IO.File.Exists(backupDB) == false) { m_eStep = STEP.DB_BACKUP_NOEXIST; } else { m_eStep = STEP.DB_BACKUP_CHECK; } } else { } break; case STEP.DB_SETUP: if (bInit) { m_dbItem = new DBItem(Define.DB_TABLE_ASYNC_ITEM); m_dbItemMaster = new DBItemMaster(Define.DB_TABLE_ASYNC_ITEM_MASTER); m_dbWork = new DBWork(Define.DB_TABLE_ASYNC_WORK); m_dbMonster = new DBMonster(Define.DB_TABLE_ASYNC_MONSTER); m_dbMonsterMaster = new DBMonsterMaster(Define.DB_TABLE_ASYNC_MONSTER_MASTER); m_dbKvs = new DBKvs(Define.DB_TABLE_ASYNC_KVS); /* * m_dbItem.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); * m_dbItemMaster.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); * m_dbWork.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); * m_dbMonster.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); * m_dbMonsterMaster.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); * m_tkKvsOpen = m_dbKvs.Open (Define.DB_NAME_DOUBTSUEN, Define.DB_FILE_DIRECTORY, ""); // DEFINE.DB_PASSWORD */ } if (true) { //if (m_tkKvsOpen.Completed) { if (m_dbKvs.ReadInt(Define.USER_SYOJIKIN) == 0) { m_dbKvs.WriteInt(Define.USER_SYOJIKIN, 1000); } List <DataItem> data_item_list = m_dbItem.SelectAll(); // 最初しか通らない if (data_item_list.Count == 0) { Debug.LogError("here"); m_dbKvs.WriteInt(Define.USER_SYAKKIN, 300000000); var skitMasterTable = new MasterTableMapChip(); skitMasterTable.Load(); var csvItem = new CsvItem(); csvItem.Load(); foreach (MapChipCSV csvMapChip in skitMasterTable.All) { DataItem data = new DataItem(csvMapChip, csvItem); m_dbItem.Replace(data); } } List <DataWork> data_work_list = m_dbWork.SelectAll(); if (data_work_list.Count == 0) { var csvWork = new CsvWork(); csvWork.Load(); foreach (CsvWorkData csv_work_data in csvWork.All) { DataWork data = new DataWork(csv_work_data); // 最初に出現していいのはappear_work_id== 0とlevel<=1のものだけ if (data.appear_work_id == 0 && data.level <= 1) { data.status = 1; } m_dbWork.Replace(data); } } List <DataMonster> data_monster_list = m_dbMonster.SelectAll(); //Debug.LogError( string.Format( "data_monster_list.Count:{0}" , data_monster_list.Count )); if (data_monster_list.Count == 0) { DataMonster monster = new DataMonster(); monster.monster_serial = 1; monster.monster_id = 1; monster.item_serial = 12; monster.condition = (int)Define.Monster.CONDITION.FINE; monster.collect_time = TimeManager.StrNow(); string strHungry = TimeManager.StrGetTime(-1 * 60 * 30); monster.meal_time = strHungry; monster.clean_time = strHungry; m_dbMonster.Replace(monster); } List <DataMonsterMaster> data_monster_master_list = m_dbMonsterMaster.SelectAll(); if (data_monster_master_list.Count == 0) { var csvMonsterMaster = new CsvMonster(); csvMonsterMaster.Load(); foreach (CsvMonsterData csv_monster_master_data in csvMonsterMaster.All) { m_dbMonsterMaster.Replace(csv_monster_master_data); } } List <DataItemMaster> data_item_master = m_dbItemMaster.SelectAll(); //Debug.LogError (string.Format ("count:{0}", data_item_master.Count)); if (data_item_master.Count == 0) { var csvItem = new CsvItem(); csvItem.Load(); foreach (CsvItemData csv_item_data in csvItem.All) { DataItemMaster data = new DataItemMaster(csv_item_data); if (data.open_item_id == 0) { data.status = 1; } m_dbItemMaster.Replace(data); } } m_eStep = STEP.INPUT_WAIT; } else { //Debug.Log ("wait"); } break; case STEP.INPUT_WAIT: if (bInit) { m_btnStart.TriggerClear(); } if (true) { // とりあえず全部調べる List <DataWork> cleared_work_list = m_dbWork.Select(string.Format(" status = {0} ", (int)Define.Work.STATUS.CLEARD)); foreach (DataWork work in cleared_work_list) { List <DataMonsterMaster> list_monster = m_dbMonsterMaster.Select(string.Format(" status = 0 and open_work_id = {0} ", work.work_id)); foreach (DataMonsterMaster data_monster_master in list_monster) { Dictionary <string, string> monster_master_dict = new Dictionary <string, string> (); monster_master_dict.Add("status", "1"); m_dbMonsterMaster.Update(data_monster_master.monster_id, monster_master_dict); } } m_btnStart.TriggerClear(); Application.LoadLevel("park_main"); } break; case STEP.DB_BACKUP_NOEXIST: if (bInit) { GameObject objOjisan = PrefabManager.Instance.MakeObject("prefab/PrefOjisanCheck", m_posDisplay); m_ojisanCheck = objOjisan.GetComponent <CtrlOjisanCheck> (); m_ojisanCheck.Initialize("バックアップファイルが\n存在しません", true); } if (m_ojisanCheck.IsYes()) { Destroy(m_ojisanCheck.gameObject); m_eStep = STEP.IDLE; } break; case STEP.DB_BACKUP_CHECK: if (bInit) { GameObject objOjisan = PrefabManager.Instance.MakeObject("prefab/PrefOjisanCheck", m_posDisplay); m_ojisanCheck = objOjisan.GetComponent <CtrlOjisanCheck> (); m_ojisanCheck.Initialize("自動保存されたデータ\nを利用して\nバックアップを行います\n\nよろしいですか"); } if (m_ojisanCheck.IsYes()) { //SoundManager.Instance.PlaySE (SoundName.BUTTON_PUSH); Destroy(m_ojisanCheck.gameObject); m_eStep = STEP.DB_BACKUP; } else if (m_ojisanCheck.IsNo()) { //SoundManager.Instance.PlaySE (SoundName.BUTTON_PUSH); Destroy(m_ojisanCheck.gameObject); m_eStep = STEP.IDLE; } else { } break; case STEP.DB_BACKUP: if (bInit) { GameObject objOjisan = PrefabManager.Instance.MakeObject("prefab/PrefOjisanCheck", m_posDisplay); m_ojisanCheck = objOjisan.GetComponent <CtrlOjisanCheck> (); m_ojisanCheck.Initialize("完了しました\nゲームをスタートしてください", true); string sourceDB = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN); string dummyDB = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN + "." + TimeManager.StrGetTime()); string backupDB = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN_BK); string backup2DB = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN_BK2); if (System.IO.File.Exists(sourceDB)) { System.IO.File.Copy(sourceDB, dummyDB, true); } if (System.IO.File.Exists(backupDB)) { System.IO.File.Copy(backupDB, sourceDB, true); } } if (m_ojisanCheck.IsYes()) { Destroy(m_ojisanCheck.gameObject); m_eStep = STEP.IDLE; } break; default: break; } if (m_btnTutorialReset.ButtonPushed) { PlayerPrefs.DeleteAll(); string full_path = System.IO.Path.Combine(Application.persistentDataPath, Define.DB_NAME_DOUBTSUEN); System.IO.File.Delete(full_path); m_btnTutorialReset.TriggerClear(); } if (m_btnCacheClear.ButtonPushed) { Caching.CleanCache(); m_btnCacheClear.TriggerClear(); } }
static async Task Main(string[] args) { var tenantName = ""; var applicationId = ""; var clientSecret = ""; var storageName = ""; var storagekey = ""; var b2cGraphClient = new B2CGraphClient(tenantName, applicationId, clientSecret); var response = await b2cGraphClient.GetAllUsersAsync(); var accounts = GraphAccounts.Parse(response); CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials(storageName, storagekey), true); //Client CloudTableClient tableClient = storageAccount.CreateCloudTableClient(); //Table CloudTable table = tableClient.GetTableReference("Ticket"); TableQuery <TicketTableEntity> query = new TableQuery <TicketTableEntity>(); List <TicketTableEntity> results = new List <TicketTableEntity>(); TableContinuationToken continuationToken = null; do { TableQuerySegment <TicketTableEntity> queryResults = await table.ExecuteQuerySegmentedAsync(query, continuationToken); continuationToken = queryResults.ContinuationToken; results.AddRange(queryResults.Results); } while (continuationToken != null); using (var textWriter = new StreamWriter("accounts.csv")) { var csv = new CsvWriter(textWriter); csv.WriteHeader <CsvItem>(); csv.NextRecord(); foreach (var account in accounts.value) { var tickets = results.Where(x => x.AttendeeId == account.Id); if (tickets.Count() == 0) { var item = new CsvItem { Id = account.Id, Email = account.OtherMails.FirstOrDefault(), FirstName = account.GivenName, LastName = account.Surname, }; csv.WriteRecord(item); csv.NextRecord(); } foreach (var ticket in tickets) { var item = new CsvItem { Id = account.Id, Email = account.OtherMails.FirstOrDefault(), FirstName = account.GivenName, LastName = account.Surname, TicketType = ticket.TicketType, CouponCode = ticket.CouponCode, IsPayed = ticket.IsPayed, PaymentType = ticket.PaymentType, Price = ticket.Price, WorkshopId = ticket.WorkshopId, City = account.city, Company = account.extension_d6245cc8578e4908b91662ccd12132e2_Company, JobTitle = account.jobTitle }; csv.WriteRecord(item); csv.NextRecord(); } } csv.Flush(); csv.Dispose(); } }
public MainWindow() : base(new[] { "resm:OxyPlot.Avalonia.Themes.Default.xaml?assembly=OxyPlot.Avalonia" }) { Title = csv_pathfilename; string hdr = ""; using (var sr = new StreamReader(csv_pathfilename)) { hdr = sr.ReadLine(); } var hdr_ss = hdr.Split(','); var cols = new List <int>(); foreach (var chanFilter in chansFilter.Split(',')) { int idx = -1; for (int i = 0; i < hdr_ss.Length; ++i) { if (hdr_ss[i].Trim().StripBegin('"').StripEnd('"') == chanFilter.Trim().StripBegin('"').StripEnd('"')) { idx = i; break; } } if (idx != -1) { cols.Add(idx); } } if (cols.Count == 0) { System.Console.WriteLine($"no matching cols"); Environment.Exit(1); } var grRoot = new Grid() { Margin = new Thickness(10) }; this.Content = grRoot; pv = new PlotView(); pv.Model = new PlotModel(); grRoot.Children.Add(pv); var series = new List <OxyPlot.Series.LineSeries>(); foreach (var col in cols) { var csv_data = new List <CsvItem>(); using (var sr = new StreamReader(csv_pathfilename)) { sr.ReadLine(); while (!sr.EndOfStream) { var str = sr.ReadLine(); var ss = str.Split(','); csv_data.Add(new CsvItem { t = ss[0].InvDoubleParse(), v = ss[col].InvDoubleParse() != 0 }); } } CsvItem periodBegin = null; foreach (var x in csv_data.WithPrev()) { if (x.item.v) { if (periodBegin == null) { periodBegin = x.item; } if (x.prev != null && !x.prev.v) { x.item.prev = periodBegin; periodBegin.periodSec = x.item.t - periodBegin.t; periodBegin = x.item; } } } var speed_items = csv_data .Where(r => r.periodSec > 0) .Select(x => new PlotData( x.t + x.periodSec / 2, 1.0 / x.periodSec )) .OrderBy(w => w.x); var f1 = new OxyPlot.Series.LineSeries() { Title = hdr_ss[col] + $" ({speed_items.Count()}pts)", DataFieldX = "x", DataFieldY = "y", ItemsSource = speed_items }; pv.Model.Series.Add(f1); } pv.ResetAllAxes(); pv.InvalidatePlot(); }