Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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));
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }