コード例 #1
0
        private void SaveStaff(JArray rowsJArray)
        {
            var staffService            = CreateService <StaffService>();
            List <UnitStaff> unitstaffs = new List <UnitStaff>();

            foreach (JObject jObject in rowsJArray)
            {
                if (jObject["Status"].ToString() != "Error")
                {
                    Guid      unitId    = Guid.Parse(jObject["Unit.NumberId"].ToString());
                    UnitStaff unitStaff = new UnitStaff();
                    unitStaff.UnitId = unitId;
                    unitStaff.Staff  = new Staff();
                    SetValues(jObject, unitStaff.Staff);
                    unitstaffs.Add(unitStaff);
                }
            }
            staffService.BulkSave(unitstaffs, this.communityId);
        }
コード例 #2
0
        public void BulkSave(List <UnitStaff> unitStaffs, Guid communityId)
        {
            var staffTask = _faciTechDbContext
                            .UnitStaff
                            .Where(e => e.Unit.CommunityId == communityId)
                            .Select(e => e.Staff)
                            .ToListAsync();
            var unitStaffTask = _faciTechDbContext.UnitStaff
                                .Where(e => e.Unit.CommunityId == communityId)
                                .ToListAsync();

            Task.WaitAll(staffTask, unitStaffTask);
            var dbStaffs     = staffTask.Result;
            var dbUnitStaffs = unitStaffTask.Result;

            foreach (var unitStaff in unitStaffs)
            {
                var isStaffAdd     = false;
                var isUnitStaffAdd = false;

                var dbStaff = dbStaffs.Where(e => e.FirstName == unitStaff.Staff.FirstName &&
                                             e.LastName == unitStaff.Staff.LastName &&
                                             e.MobileNumber == unitStaff.Staff.MobileNumber).FirstOrDefault();

                if (dbStaff == null)
                {
                    isStaffAdd = true;
                    dbStaff    = new Staff()
                    {
                        Id = Guid.NewGuid()
                    };
                }

                var dbUnitStaff = dbUnitStaffs
                                  .Where(e => e.UnitId == unitStaff.UnitId && e.StaffId == dbStaff.Id)
                                  .FirstOrDefault();

                if (dbUnitStaff == null)
                {
                    isUnitStaffAdd = true;
                    dbUnitStaff    = new UnitStaff()
                    {
                        Id = Guid.NewGuid()
                    };
                }

                dbStaff.FirstName    = unitStaff.Staff.FirstName;
                dbStaff.LastName     = unitStaff.Staff.LastName;
                dbStaff.MobileNumber = unitStaff.Staff.MobileNumber;
                dbStaff.StaffType    = unitStaff.Staff.StaffType;
                dbStaff.Address      = unitStaff.Staff.Address;
                dbStaff.AadharNumber = unitStaff.Staff.AadharNumber;
                dbStaff.CommunityId  = communityId;
                dbUnitStaff.UnitId   = unitStaff.UnitId;
                dbUnitStaff.StaffId  = dbStaff.Id;

                if (isStaffAdd)
                {
                    dbStaffs.Add(dbStaff);
                    _faciTechDbContext.Add(dbStaff);
                }
                if (isUnitStaffAdd)
                {
                    dbUnitStaffs.Add(dbUnitStaff);
                    _faciTechDbContext.Add(dbUnitStaff);
                }
            }
            _faciTechDbContext.SaveChanges();
        }