/// <summary> 請求部門名取得 </summary> /// <param name="code"> 請求部門コード</param> /// <returns>請求部門名</returns> private string GetDepartmentName(string code) { var name = string.Empty; DepartmentsResult result = null; var task = ServiceProxyFactory.LifeTime(async factory => { var service = factory.Create <DepartmentMasterClient>(); result = await service.GetByCodeAsync(SessionKey, CompanyId, new string[] { code }); }); ProgressDialog.Start(ParentForm, task, false, SessionKey); var department = result?.Departments?.FirstOrDefault(x => x != null); if (department != null) { name = department.Name; ClearStatusMessage(); } return(name); }
private async Task <bool> DisplayFocusOutData_DepartmentName() { var succeeded = false; await ServiceProxyFactory.LifeTime(async factory => { var service = factory.Create <DepartmentMasterClient>(); DepartmentsResult result = await service.GetByCodeAsync(SessionKey, CompanyId, new string[] { txtDepartmentCode.Text }); if (result.ProcessResult.Result) { if (result.Departments.Any()) { succeeded = true; Department deptData = result.Departments[0]; lblDepartmentName.Text = deptData.Name; DeparmentId = deptData.Id; } } }); return(succeeded); }
/// <summary> /// Get a List of all Departments /// </summary> /// <returns>The <see cref="List{Department}"/> of all returned Departments.</returns> public async Task <List <Department> > GetDepartments() { //Get the JSON GetDepartments department = new GetDepartments(); //Send and receive JSON from WebUntis string requestJson = JsonConvert.SerializeObject(department); string responseJson = await SendJsonAndWait(requestJson, _url, SessionId); //Parse JSON to Class DepartmentsResult result = JsonConvert.DeserializeObject <DepartmentsResult>(responseJson); string errorMsg = wus.LastError.Message; if (!SuppressErrors && errorMsg != null) { Logger.Append(Logger.LogLevel.Error, errorMsg); throw new WebUntisException(errorMsg); } //Return all the Departments return(new List <Department>(result.result)); }
private void Import() { ClearStatusMessage(); try { ImportSetting importSetting = null; var task = Util.GetMasterImportSettingAsync(Login, ImportFileType.Staff); ProgressDialog.Start(ParentForm, task, false, SessionKey); importSetting = task.Result; if (importSetting == null) { return; } var definition = new StaffFileDefinition(new DataExpression(ApplicationControl)); definition.MailField.Required = UseDistribution; definition.DepartmentIdField.GetModelsByCode = val => { Dictionary <string, Department> product = null; ServiceProxyFactory.LifeTime(factory => { var departmentMaster = factory.Create <DepartmentMasterClient>(); DepartmentsResult result = departmentMaster.GetByCode(SessionKey, CompanyId, val); if (result.ProcessResult.Result) { product = result.Departments.ToDictionary(c => c.Code); } }); return(product ?? new Dictionary <string, Department>()); }; //その他 definition.StaffCodeField.ValidateAdditional = (val, param) => { var reports = new List <WorkingReport>(); if (((ImportMethod)param) != ImportMethod.Replace) { return(reports); } var codes = val.Values.Where(x => !string.IsNullOrEmpty(x.Code)).Select(x => x.Code).Distinct().ToArray(); MasterDatasResult resultlogin = null; ServiceProxyFactory.LifeTime(factory => { var staffMaster = factory.Create <StaffMasterClient>(); resultlogin = staffMaster.GetImportItemsLoginUser(SessionKey, CompanyId, codes); }); foreach (MasterData ca in resultlogin.MasterDatas.Where(p => !val.Any(a => a.Value.Code == p.Code))) { reports.Add(new WorkingReport { LineNo = null, FieldNo = definition.StaffCodeField.FieldIndex, FieldName = definition.StaffCodeField.FieldName, Message = $"ログインユーザーマスターに存在する{ca.Code}:{ca.Name}が存在しないため、インポートできません。", }); } MasterDatasResult resultcustomer = null; MasterDatasResult resultbilling = null; ServiceProxyFactory.LifeTime(factory => { var staffMaster = factory.Create <StaffMasterClient>(); resultcustomer = staffMaster.GetImportItemsCustomer(SessionKey, CompanyId, codes); resultbilling = staffMaster.GetImportItemsBilling(SessionKey, CompanyId, codes); }); foreach (MasterData ca in resultcustomer.MasterDatas.Where(p => !val.Any(a => a.Value.Code == p.Code))) { reports.Add(new WorkingReport { LineNo = null, FieldNo = definition.StaffCodeField.FieldIndex, FieldName = definition.StaffCodeField.FieldName, Message = $"得意先マスターに存在する{ca.Code}:{ca.Name}が存在しないため、インポートできません。", }); } foreach (MasterData ca in resultbilling.MasterDatas.Where(p => !val.Any(a => a.Value.Code == p.Code))) { reports.Add(new WorkingReport { LineNo = null, FieldNo = definition.StaffCodeField.FieldIndex, FieldName = definition.StaffCodeField.FieldName, Message = $"請求データに存在する{ca.Code}:{ca.Name}が存在しないため、インポートできません。", }); } return(reports); }; var importer = definition.CreateImporter(m => m.Code); importer.UserId = Login.UserId; importer.UserCode = Login.UserCode; importer.CompanyId = CompanyId; importer.CompanyCode = Login.CompanyCode; importer.LoadAsync = async() => await LoadListAsync(); importer.RegisterAsync = async unitOfWork => await RegisterForImportAsync(unitOfWork); var importResult = DoImport(importer, importSetting, Clear); if (!importResult) { return; } StaffProgress.Clear(); Task <List <Staff> > loadTask = LoadListAsync(); ProgressDialog.Start(ParentForm, loadTask, false, SessionKey); StaffProgress.AddRange(loadTask.Result); grdStaff.DataSource = new BindingSource(StaffProgress, null); } catch (Exception ex) { Debug.Fail(ex.ToString()); NLogHandler.WriteErrorLog(this, ex, SessionKey); ShowWarningDialog(MsgErrImportErrorWithoutLog); } }
private void ExportData() { try { List <Department> list = null; var loadTask = ServiceProxyFactory.LifeTime(async factory => { var service = factory.Create <DepartmentMasterClient>(); DepartmentsResult result = await service.GetDepartmentAndStaffAsync(SessionKey, CompanyId); if (result.ProcessResult.Result) { list = result.Departments; } }); ProgressDialog.Start(ParentForm, Task.WhenAll(loadTask), false, SessionKey); if (!list.Any()) { ShowWarningDialog(MsgWngNoExportData); return; } string serverPath = GetServerPath(); if (!Directory.Exists(serverPath)) { serverPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); } var filePath = string.Empty; var fileName = $"請求部門マスター{DateTime.Today:yyyyMMdd}.csv"; if (!ShowSaveExportFileDialog(serverPath, fileName, out filePath)) { return; } var definition = new DepartmentFileDefinition( new DataExpression(ApplicationControl)); var exporter = definition.CreateExporter(); exporter.UserId = Login.UserId; exporter.UserCode = Login.UserCode; exporter.CompanyId = CompanyId; exporter.CompanyCode = Login.CompanyCode; ProgressDialog.Start(ParentForm, (cancel, progress) => { return(exporter.ExportAsync(filePath, list, cancel, progress)); }, true, SessionKey); if (exporter.Exception != null) { NLogHandler.WriteErrorLog(this, exporter.Exception, SessionKey); ShowWarningDialog(MsgErrExportError); return; } DispStatusMessage(MsgInfFinishExport); } catch (Exception ex) { Debug.Fail(ex.ToString()); NLogHandler.WriteErrorLog(this, ex, SessionKey); DispStatusMessage(MsgErrExportError); } }