public static void GenerateWorkHistoryRepository(ACSContext Context) { //все должности var query = (from dUser in DataLoader1C.Data.Сотрудники from wh in dUser.КадроваяИстория orderby wh.Дата select new { КодПодразделения = wh.КодПодразделения, Должность = wh.Должность, КодФизЛицо = dUser.КодФизЛицо, Код = Guid.Parse(dUser.Код), ДатаНачала = wh.Дата, ДатаОкончания = GetEndDateWorkHistory(dUser, wh), Ставка = wh.Ставка }); foreach (var WorkHistory in query) { if (string.IsNullOrEmpty(WorkHistory.КодПодразделения.ToString())) { continue; } Department department = Context.Departments.FirstOrDefault(d => d.Code1C == WorkHistory.КодПодразделения); if (department == null) { continue; } //КодДолжности1С PostsEmployeesСode1С PUC = Context.PostsEmployeesСode1С.FirstOrDefault (puc => puc.CodePost1C == WorkHistory.Код); if (PUC == null) { continue; } var wh = new WorkHistory() { Department = department, PostName = WorkHistory.Должность, StartDate = XMLDataTypeConverter.GetDateTime(WorkHistory.ДатаНачала), EndDate = WorkHistory.ДатаОкончания, Rate = double.Parse(WorkHistory.Ставка), PostsEmployeesСode1С = PUC, s_AuthorID = 1, s_EditorID = 1 }; Context.WorkHistories.Add(wh); Context.SaveChanges(); } }
/// <summary> /// Заполнение бд код должности 1с и кому этот код пренадлежит /// </summary> public static void GeneratePostsEmployeesСode1СRepository(ACSContext Context) { //все должности //var query = (from dUser in DataLoader1C.Data.Сотрудники // select dUser.Код).Distinct(); var query = from db in DataLoader1C.Data.Сотрудники where db.Актуальность == "Да" group db by db.Код into @group from dataEmpl in @group where XMLDataTypeConverter.GetDateTime(dataEmpl.Принят) == @group.Max(dataEmpl => XMLDataTypeConverter.GetDateTime(dataEmpl.Принят)) orderby XMLDataTypeConverter.GetDateTime(dataEmpl.Принят), dataEmpl.ФИО select dataEmpl; var data = query.ToList(); if (data.Count == 0) { return; } foreach (var empl in query) { Guid Guid1C; if (!Guid.TryParse(empl.КодФизЛицо, out Guid1C)) { continue; } Employee userWithGuid1C = Context.Employees.FirstOrDefault(u => u.Guid1C == Guid1C); if (userWithGuid1C == null) { continue; } int?Id = userWithGuid1C.Id; var PostsEmployeesСode1С = new PostsEmployeesСode1С() { CodePost1C = Guid.Parse(empl.Код), Employee = userWithGuid1C, s_AuthorID = 1, s_EditorID = 1 }; Context.PostsEmployeesСode1С.Add(PostsEmployeesСode1С); Context.SaveChanges(); } }