private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new PodaciContext()) { var client = db.Add(new Client()).Entity; db.SaveChanges(); Clients.Clients.Add(client); } }
private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new PodaciContext()) { var service = db.Add(new Service()).Entity; db.SaveChanges(); model.Services.Add(service); } }
private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new PodaciContext()) { var clean = db.Add(new CleaningJob { ClientId = 1, Date = Date ?? DateTime.Now }).Entity; db.SaveChanges(); model.CleaningJobs.Add(clean); } }
private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new PodaciContext()) { var team = db.Add(new Team()).Entity; team.CleanerTeams = new ObservableCollection <CleanerTeam>(); db.SaveChanges(); Teams.Teams.Add(new TeamsHelper { Team = team }); } }
private void OK_Click(object sender, RoutedEventArgs e) { if (model.RepeatFrequency != 0 && !model.days.Contains(true)) { MessageBox.Show("Repeating day has to be selected!"); return; } using (var db = new PodaciContext()) { if (model.RepeatFrequency == 0) { if (model.Id != 0) { model.AllDays = 0; db.Update(model); db.SaveChanges(); } } else { model.daysToAllDays(); if (cleaningJob.RepeatJobId == null) { var RepeatJob = db.Add(model); db.SaveChanges(); cleaningJob.RepeatJobId = RepeatJob?.Entity?.Id; db.Update(cleaningJob); db.SaveChanges(); } else { db.Update(model); db.SaveChanges(); } } //if (model.days[startDay] == false && cleanJob.Repeating != 0) //{ // var jobs = db.CleaningJobs.Where(x => x.Id != cleanJob.Id && x.ClientId == cleanJob.ClientId && x.Date >= cleanJob.Date && x.Repeating == cleanJob.Repeating); // foreach (var job in jobs) // db.CleaningJobs.Remove(job); //} } Fun.setRepeatingJobs(cleaningJob.RepeatJobId ?? model.Id, cleaningJob); Ok = true; Close(); }
private void Add_Click(object sender, RoutedEventArgs e) { using (var db = new PodaciContext()) { var cleaner = db.Add(new Cleaner { Monday = true, Tuesday = true, Wednesday = true, Thursday = true, Friday = true, Saturday = true, Sunday = true, NotAvailableStart = DateTime.Now, NotAvailableEnd = DateTime.Now, NotAvailableStart2 = DateTime.Now, NotAvailableEnd2 = DateTime.Now, HolidayStart = DateTime.Now, HolidayEnd = DateTime.Now, HolidayStart2 = DateTime.Now, HolidayEnd2 = DateTime.Now }).Entity; db.SaveChanges(); Cleaners.Cleaners.Add(cleaner); } }
public static void checkAndSaveServiceJobs(List <ServiceJob> newServiceJob, List <ServiceJob> oldServiceJob, PodaciContext db) { if (newServiceJob == null) { newServiceJob = new List <ServiceJob>(); } if (oldServiceJob == null) { oldServiceJob = new List <ServiceJob>(); } List <ServiceJob> toRemove = new List <ServiceJob>(); foreach (var job in oldServiceJob) { if (!newServiceJob.Any(x => x.ServiceId == job.ServiceId)) { toRemove.Add(job); } } if (toRemove.Count > 0) { db.RemoveRange(toRemove); db.SaveChanges(); } foreach (var job in newServiceJob) { if (!oldServiceJob.Any(x => x.ServiceId == job.ServiceId)) { db.Add(job); db.SaveChanges(); //job.CleaningJob = null; } } }
protected override void OnStartup(StartupEventArgs e) { ZP.Dbdir = Directory.GetCurrentDirectory(); ZP.OldDbdir = $"{Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)}\\CleaningRecordsOldDb"; System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); var serviceCollection = new ServiceCollection(); ConfigureServices(serviceCollection); var dir = Directory.GetCurrentDirectory(); using (var db = new PodaciContext()) { try { copyDB(db); } catch (Exception ex) { } if (!db.Clients.Any()) { db.Add(new Client { Name = "TestClient", CleaningJobs = new System.Collections.ObjectModel.ObservableCollection <CleaningJob> { new CleaningJob { Location = "Test Location" } } }); db.SaveChanges(); } if (!db.Cleaners.Any()) { db.Add(new Cleaner { Name = "TestCleaner" }); db.SaveChanges(); } if (!db.Teams.Any()) { db.Add(new Team { Name = "TestTeam" }); db.SaveChanges(); } if (!db.Services.Any()) { db.Add(new Service { Name = "Parking Fee", Description = "Parking Fee", Rate = 1.8, Cost = 0 }); db.Add(new Service { Name = "CCS", Description = "Carpet Cleaning Service", Rate = 65, Cost = 0 }); db.Add(new Service { Name = "MSR2", Description = "Regular Team Sevice Reduced", Rate = 25, Cost = 0 }); db.Add(new Service { Name = "Cleaning Service Fee", Description = "Cleaning Service Fee", Rate = 0, Cost = 10 }); db.Add(new Service { Name = "DEEP", Description = "Deep Cleaning Service", Rate = 0, Cost = 0 }); db.Add(new Service { Name = "MSO", Description = "Team Service Once Off", Rate = 30, Cost = 0 }); db.Add(new Service { Name = "MSR", Description = "Regular Team Service", Rate = 30, Cost = 0 }); db.Add(new Service { Name = "DBS", Description = "Individual General Cleaning Service", Rate = 17.93, Cost = 0 }); db.SaveChanges(); } } // var builder = new ConfigurationBuilder() // .SetBasePath(Directory.GetCurrentDirectory()) // .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); // Configuration = builder.Build(); // var serviceCollection = new ServiceCollection(); // ConfigureServices(serviceCollection); // ServiceProvider = serviceCollection.BuildServiceProvider(); // var mainWindow = ServiceProvider.GetRequiredService<MainWindow>(); // mainWindow.Show(); }
public static void setRepeatingJobs(int RepeatJobId, CleaningJob CleaningJobCopy) { try { if (RepeatJobId == 0) { return; } int iterations = 50; var date = CleaningJobCopy.Date; List <int> ids = new List <int>(); using (var db = new PodaciContext()) { var RepeatJob = db.RepeatJobs .Include(x => x.CleaningJobs).FirstOrDefault(x => x.Id == RepeatJobId); RepeatJob.AllDaysToDays(); //var defaultCleanJob = RepeatJob.CleaningJobs.FirstOrDefault(); int week = getWeek(date); int year = date.Year; int maxWeek = getWeek(new DateTime(year, 12, 31)); List <int> weeks = new List <int> { week }; for (int i = 0; i < iterations + 1; i++) { weeks.Add((weeks[i] + RepeatJob.RepeatFrequency) % (maxWeek + 1)); } List <CleaningJob> toRemove = new List <CleaningJob>(); foreach (var cleanJob in RepeatJob.CleaningJobs) { if (cleanJob.Date >= date) { if (!RepeatJob.days[cleanJob.Day] || !weeks.Contains(cleanJob.Week)) { toRemove.Add(cleanJob); } } } foreach (var c in toRemove) { if (c.Id != CleaningJobCopy.Id) { db.Remove(c); } } db.SaveChanges(); if (RepeatJob.CleaningJobs == null || RepeatJob.CleaningJobs.Count <= 0) { return; } int day = getDay(date); List <DateTime> weekDatetimes = new List <DateTime>(); for (int i = 0; i < 7; i++) { if (RepeatJob.days[i]) { weekDatetimes.Add(date.AddDays(i - day)); } } int datesCount = weekDatetimes.Count; for (int i = 0; i < iterations; i++) { //var watch = System.Diagnostics.Stopwatch.StartNew(); for (int j = 0; j < datesCount; j++) { var cleanjob = RepeatJob.CleaningJobs.FirstOrDefault(x => x.Date.Date == weekDatetimes[j].Date); if (cleanjob == null) { var defaultCleanJob = new CleaningJob(); defaultCleanJob.TeamId = CleaningJobCopy.TeamId; defaultCleanJob.TimeEnd = CleaningJobCopy.TimeEnd; defaultCleanJob.TimeStart = CleaningJobCopy.TimeStart; defaultCleanJob.Location = CleaningJobCopy.Location; defaultCleanJob.NoOfHours = CleaningJobCopy.NoOfHours; defaultCleanJob.ClientId = CleaningJobCopy.ClientId; defaultCleanJob.CleanerId = CleaningJobCopy.CleanerId; defaultCleanJob.ServiceId = CleaningJobCopy.ServiceId; defaultCleanJob.Amount = CleaningJobCopy.Amount; defaultCleanJob.Date = weekDatetimes[j]; defaultCleanJob.RepeatJob = null; defaultCleanJob.RepeatJobId = RepeatJobId; defaultCleanJob.JobStatus = CleaningJobCopy.JobStatus; db.Add(defaultCleanJob); db.SaveChanges(); ids.Add(defaultCleanJob.Id); } else { cleanjob.TeamId = CleaningJobCopy.TeamId; cleanjob.TimeEnd = CleaningJobCopy.TimeEnd; cleanjob.TimeStart = CleaningJobCopy.TimeStart; cleanjob.Location = CleaningJobCopy.Location; cleanjob.NoOfHours = CleaningJobCopy.NoOfHours; cleanjob.ClientId = CleaningJobCopy.ClientId; cleanjob.CleanerId = CleaningJobCopy.CleanerId; cleanjob.ServiceId = CleaningJobCopy.ServiceId; cleanjob.Amount = CleaningJobCopy.Amount; cleanjob.Date = weekDatetimes[j]; cleanjob.JobStatus = CleaningJobCopy.JobStatus; //watch.Reset(); //watch.Start(); if (cleanjob.Id != CleaningJobCopy.Id) { ids.Add(cleanjob.Id); db.Update(cleanjob); } //watch.Stop(); //var elapsedMs2 = watch.ElapsedMilliseconds; //System.Diagnostics.Debug.WriteLine("elapsedMs2= " + elapsedMs2 ); } weekDatetimes[j] = weekDatetimes[j].AddDays(7 * RepeatJob.RepeatFrequency); } } db.SaveChanges(); } using (var db = new PodaciContext()) { var cjTemp = db.CleaningJobs.Include(x => x.ServiceJobs).FirstOrDefault(x => x.Id == CleaningJobCopy.Id); foreach (int id in ids) { var ServiceJobsCopy = new List <ServiceJob>(); foreach (var v in cjTemp.ServiceJobs) { ServiceJobsCopy.Add(new ServiceJob { CleaningJobId = v.CleaningJobId, ServiceId = v.ServiceId }); } if (ServiceJobsCopy != null) { foreach (var v in ServiceJobsCopy) { v.CleaningJobId = id; v.CleaningJob = null; } } var cljTemp = db.CleaningJobs.Include(x => x.ServiceJobs).FirstOrDefault(x => x.Id == id).ServiceJobs; checkAndSaveServiceJobs(ServiceJobsCopy, cljTemp, db); } } } catch (Exception ex) { MessageBox.Show("Error Repeating jobs: " + ex.Message); } }
protected void OnPropertyChanged(string prop) { if (PropertyChanged != null) { if (prop == "Name") { Team.Name = Name; using (var db = new PodaciContext()) { db.Update(Team); db.SaveChanges(); } } else if (prop == "Color") { Team.Color = Color; using (var db = new PodaciContext()) { db.Update(Team); db.SaveChanges(); } } else { bool flag = true; List <int> Cleaners = new List <int>(); if (CleanerId != null) { if (Cleaners.Contains((int)CleanerId)) { flag = false; } Cleaners.Add((int)CleanerId); } if (Cleaner2Id != null) { if (Cleaners.Contains((int)Cleaner2Id)) { flag = false; } Cleaners.Add((int)Cleaner2Id); } if (Cleaner3Id != null) { if (Cleaners.Contains((int)Cleaner3Id)) { flag = false; } Cleaners.Add((int)Cleaner3Id); } if (Cleaner4Id != null) { if (Cleaners.Contains((int)Cleaner4Id)) { flag = false; } Cleaners.Add((int)Cleaner4Id); } if (Cleaner5Id != null) { if (Cleaners.Contains((int)Cleaner5Id)) { flag = false; } Cleaners.Add((int)Cleaner5Id); } if (Cleaner6Id != null) { if (Cleaners.Contains((int)Cleaner6Id)) { flag = false; } Cleaners.Add((int)Cleaner6Id); } if (flag) { using (var db = new PodaciContext()) { List <CleanerTeam> toRemove = new List <CleanerTeam>(); for (int i = 0; i < Team.CleanerTeams?.Count(); i++) { if (!Cleaners.Contains(Team.CleanerTeams[i].CleanerId)) { toRemove.Add(Team.CleanerTeams[i]); } } if (toRemove.Count > 0) { foreach (var CleanerTeam in toRemove) { db.Remove(CleanerTeam); Team.CleanerTeams.Remove(CleanerTeam); } db.SaveChanges(); } flag = false; foreach (int CleanerId in Cleaners) { if (CleanerId != 0 && !Team.CleanerTeams.Any(x => x.CleanerId == CleanerId)) { var CleanerTeam = new CleanerTeam { CleanerId = CleanerId, TeamId = Team.Id }; db.Add(CleanerTeam); Team.CleanerTeams.Add(CleanerTeam); flag = true; } } if (flag) { db.SaveChanges(); } //if (Cleaners.Count < Team.CleanerTeams?.Count()) //{ // var cleanersTemp = Team.CleanerTeams.Select(x => x.CleanerId)?.ToList(); // foreach (var CleanId in cleanersTemp) // { // if (Cleaners.Count == 0 || !Cleaners.Contains(CleanId)) // { // db.Remove(CleanId); // db.SaveChanges(); // } // } //} //else if (Cleaners.Count >= Team.CleanerTeams?.Count()) //{ // var cleanersTemp = Team.CleanerTeams.Select(x => x.CleanerId)?.ToList(); // flag = false; // List<int> cleanerIds = new List<int>(); // foreach (var CleanId in Cleaners) // { // if (cleanersTemp == null || !cleanersTemp.Contains(CleanId)) // { // cleanerIds.Add(CleanId); // flag = true; // } // } // if (flag) // { // int j = 0; // for (int i = 0; i < Team.CleanerTeams?.Count(); i++) // { // if (!Cleaners.Contains(Team.CleanerTeams[i].CleanerId)) // { // db.Remove(Team.CleanerTeams[i]); // db.SaveChanges(); // db.Add(new CleanerTeam { CleanerId = cleanerIds[j], TeamId = Team.Id }); // db.SaveChanges(); // Team.CleanerTeams[i].CleanerId = cleanerIds[j]; // j++; // } // } // if (Cleaners.Count > Team.CleanerTeams?.Count()) // { // for (int i = Team.CleanerTeams.Count(); i < Cleaners.Count; i++) // { // var cleanTeam = new CleanerTeam { CleanerId = cleanerIds[j], TeamId = Team.Id }; // Team.CleanerTeams.Add(cleanTeam); // db.Add(cleanTeam); // db.SaveChanges(); // j++; // } // } // } //} } } } PropertyChanged(this, new PropertyChangedEventArgs(prop)); } }