public async Task <ActionResult <LessonDto> > PostLesson(LessonInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); try { var lesson = new Lesson() { Date = DateTimeString.TryParsingDate(input.Date, false), Time = DateTimeString.TryParsingDate(input.Time, true), InChargeId = input.InChargeId, CourseId = input.CourseId, LessonPeriod = input.LessonPeriod, Note = input.Note, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; lesson.Status = Domain.Enums.LessonStatus.NotStarted; _context.Lessons.Add(lesson); await _context.SaveChangesAsync(); var lastLesson = await _context.Lessons.Where(x => !x.VirtualDeleted && x.CourseId == lesson.CourseId && x.Id != lesson.Id).OrderByDescending(x => x.Number).FirstOrDefaultAsync(); lesson.Number += lastLesson.Number; _context.Entry(lesson).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Lesson).FullName, Content = "@userName@addAction@objTitle", TypeId = lesson.Id, UserId = user.Id }; _context.Logs.Add(log); await _context.SaveChangesAsync(); var result = new LessonDto() { Id = lesson.Id, Date = lesson.Date.HasValue ? lesson.Date.Value.ToString("G") : "", Time = lesson.Time.HasValue ? lesson.Time.Value.ToString("T") : "", TimeInTimes = lesson.Time.HasValue && lesson.Date.HasValue ? ((DateTime.Now.Date - lesson.Date.Value).TotalHours + (DateTime.Now.Hour - lesson.Time.Value.Hour)).ToString() : "0", CourseId = lesson.CourseId.HasValue ? lesson.CourseId.Value : 0, InChargeId = lesson.InChargeId, InChargeName = users.SingleOrDefault(y => y.Id == lesson.InChargeId).FullName, LessonPeriod = lesson.LessonPeriod, Note = lesson.Note, Status = lesson.Status }; return(result); } catch (Exception ex) { return(null); } }
public void TickPrecisionDateTimeTest() { DateTime dt = KnownTimeWithTicks; DateTimeString val = new DateTimeString { When = dt }, clone = Serializer.DeepClone(val); Assert.AreEqual(dt, clone.When); }
public void TickPrecisionDateTimeTest() { DateTime dt = KnownTimeWithTicks; DateTimeString val = new DateTimeString { When = dt }, clone = Serializer.DeepClone(val); Assert.AreEqual(dt, clone.When); }
/// <summary> /// <see cref="DateTime"/>への変換を試みます。 /// </summary> /// <param name="context"><see cref="ConvertToObjectItemContext"/>。</param> /// <param name="result">変換結果。</param> /// <param name="errorMessage">エラーメッセージ。</param> /// <returns>変換に成功した場合にtrue。</returns> private static bool TryParse(ConvertToObjectItemContext context, out object result, out string errorMessage) { result = null; errorMessage = string.Empty; var dts = new DateTimeString(context.CsvItem); if (dts.TryParse(out DateTime dt)) { result = dt; return(true); } errorMessage = CsvConfig.Current.ValidationMessage.GetDateTimeConvertError(context); return(false); }
public async Task <ActionResult <CourseDto> > PostCourse(CourseInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); var currency = await _context.Currencies.Where(x => !x.VirtualDeleted && x.IsActive).FirstOrDefaultAsync(); var defaultCurrency = await _context.Currencies.Where(x => !x.VirtualDeleted).FirstOrDefaultAsync(); try { var typeOfPacket = await _context.TypeOfPackets.FirstOrDefaultAsync(x => !x.VirtualDeleted && x.Id == input.TypeOfPacketId); var course = new Course() { ExamDate = DateTimeString.TryParsingDate(input.ExamDate, false), InChargeId = input.InChargeId, CustomerId = input.CustomerId, LessonPeriod = input.LessonPeriod, Note = input.Note, StartCourse = DateTimeString.TryParsingDate(input.StartCourse, false), TotalAmount = input.TotalAmount, CurrencyId = currency == null ? defaultCurrency?.Id : currency.Id, PeroidBeforeSendEmailId = input.PeroidBeforeSendEmailId, TypeOfExamId = input.TypeOfExamId, TypeOfPacketId = input.TypeOfPacketId, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; course.RemainingMoney = course.TotalAmount; course.Status = Domain.Enums.CourseStatus.NotStarted; _context.Courses.Add(course); await _context.SaveChangesAsync(); for (int i = 0; i < typeOfPacket.LessonsCount; i++) { var lesson = new Lesson() { Date = datetime, Time = datetime, InChargeId = input.InChargeId, CourseId = course.Id, Number = i + 1, LessonPeriod = input.LessonPeriod, Note = input.Note, Status = Domain.Enums.LessonStatus.NotStarted, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; _context.Lessons.Add(lesson); } var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Course).FullName, Content = "@userName@addAction@objTitle", TypeId = course.Id, UserId = user.Id }; _context.Logs.Add(log); await _context.SaveChangesAsync(); course = await _context.Courses.Where(x => x.Id == course.Id).Include(x => x.InCharge) .Include(x => x.Currency) .Include(x => x.Customer) .Include(x => x.TypeOfExam) .Include(x => x.TypeOfPacket) .Include(x => x.PeroidBeforeSendEmail).FirstOrDefaultAsync(); var result = new CourseDto() { Id = course.Id, ExamDate = course.ExamDate.HasValue ? course.ExamDate.Value.ToString("G") : "", ExamDateInDays = course.ExamDate.HasValue ? (DateTime.Now.Date - course.ExamDate.Value).TotalDays.ToString() : "0", InChargeId = course.InChargeId, InChargeName = users.SingleOrDefault(y => y.Id == course.InChargeId).FullName, CustomerId = course.CustomerId.HasValue ? course.CustomerId.Value : 0, LessonPeriod = course.LessonPeriod.ToString(), Note = course.Note, RemainingMoney = course.RemainingMoney, StartCourse = course.StartCourse.HasValue ? course.StartCourse.Value.ToString("G") : "", Status = course.Status.ToString(), TotalAmount = course.TotalAmount, Currency = course.Currency == null ? new CurrencyDto() : new CurrencyDto() { Id = course.Currency.Id, Name = course.Currency.Name, ForeignName = course.Currency.ForeignName, IsActive = course.Currency.IsActive, Symbol = course.Currency.Symbol, }, PeroidBeforeSendEmail = course.PeroidBeforeSendEmail == null ? new PeroidBeforeSendEmailDto() : new PeroidBeforeSendEmailDto() { Id = course.PeroidBeforeSendEmail.Id, Name = course.PeroidBeforeSendEmail.Name, ForeignName = course.PeroidBeforeSendEmail.ForeignName, Hours = course.PeroidBeforeSendEmail.Hours, }, TypeOfExam = course.TypeOfExam == null ? new TypeOfExamDto() : new TypeOfExamDto() { Id = course.TypeOfExam.Id, Name = course.TypeOfExam.Name, ForeignName = course.TypeOfExam.ForeignName, Cost = course.TypeOfExam.Cost }, TypeOfPacket = course.TypeOfPacket == null ? new TypeOfPacketDto() : new TypeOfPacketDto() { Id = course.TypeOfPacket.Id, Name = course.TypeOfPacket.Name, ForeignName = course.TypeOfPacket.ForeignName, Cost = course.TypeOfPacket.Cost } }; return(result); } catch (Exception ex) { return(null); } }
public async Task <ActionResult <CourseDto> > PutCourse(int id, CourseInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); var currency = await _context.Currencies.Where(x => !x.VirtualDeleted && x.IsActive).FirstOrDefaultAsync(); var defaultCurrency = await _context.Currencies.Where(x => !x.VirtualDeleted).FirstOrDefaultAsync(); var lessons = await _context.Lessons.Where(x => !x.VirtualDeleted && x.CourseId == id).ToListAsync(); var typeOfPacket = await _context.TypeOfPackets.FirstOrDefaultAsync(x => !x.VirtualDeleted && x.Id == input.TypeOfPacketId); var course = await _context.Courses.FindAsync(id); course.ExamDate = DateTimeString.TryParsingDate(input.ExamDate, false); course.InChargeId = input.InChargeId; course.CustomerId = input.CustomerId; course.LessonPeriod = input.LessonPeriod; course.Note = input.Note; course.RemainingMoney = input.TotalAmount - (course.TotalAmount - course.RemainingMoney); course.StartCourse = DateTimeString.TryParsingDate(input.StartCourse, false); course.TotalAmount = input.TotalAmount; course.CurrencyId = currency == null ? defaultCurrency?.Id : currency.Id; course.PeroidBeforeSendEmailId = input.PeroidBeforeSendEmailId; course.TypeOfExamId = input.TypeOfExamId; course.TypeOfPacketId = input.TypeOfPacketId; course.UpdatedUserId = input.UserId; course.UpdatedDate = DateTime.Now; if (typeOfPacket.LessonsCount > lessons.Count) { var lastLesson = await _context.Lessons.Where(x => !x.VirtualDeleted && x.CourseId == course.Id).OrderByDescending(x => x.Number).FirstOrDefaultAsync(); var number = lastLesson.Number; course.Status = Domain.Enums.CourseStatus.Started; for (int i = 0; i < typeOfPacket.LessonsCount - lessons.Count; i++) { number += 1; var lesson = new Lesson() { Date = datetime, Time = datetime, InChargeId = input.InChargeId, CourseId = id, LessonPeriod = input.LessonPeriod, Note = input.Note, Number = number, Status = Domain.Enums.LessonStatus.NotStarted, CreatedDate = DateTime.Now, CreatedUserId = input.UserId }; _context.Lessons.Add(lesson); } } else if (!lessons.Any(x => x.Status != Domain.Enums.LessonStatus.Active || x.Status != Domain.Enums.LessonStatus.NotStarted)) { course.Status = Domain.Enums.CourseStatus.Finished; } _context.Entry(course).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Course).FullName, Content = "@userName@updateAction@objTitle", TypeId = course.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CourseExists(id)) { return(NotFound()); } else { throw; } } var result = new CourseDto(); //var result = new CourseDto() //{ // Id = course.Id, // ExamDate = course.ExamDate.HasValue ? course.ExamDate.Value.ToString("G") : "", // ExamDateInDays = course.ExamDate.HasValue ? (course.ExamDate.Value - DateTime.Now.Date).TotalDays.ToString() : "0", // InChargeId = course.InChargeId, // NextLessonDate = lessons.Any() ? lessons.OrderBy(x => x.Date).FirstOrDefault().Date.Value.ToString("G") : "", // NextLessonTime = lessons.Any() ? lessons.OrderBy(x => x.Date).OrderBy(x => x.Time).FirstOrDefault().Time.Value.ToString("T") : "", // InChargeName = users.SingleOrDefault(y => y.Id == course.InChargeId).FullName, // CustomerId = course.CustomerId.HasValue ? course.CustomerId.Value : 0, // LessonPeriod = course.LessonPeriod.ToString(), // Note = course.Note, // RemainingMoney = course.RemainingMoney, // StartCourse = course.StartCourse.HasValue ? course.StartCourse.Value.ToString("G") : "", // Status = course.Status.ToString(), // TotalAmount = course.TotalAmount, // Currency = course.Currency == null ? new CurrencyDto() : new CurrencyDto() // { // Id = course.Currency.Id, // Name = course.Currency.Name, // ForeignName = course.Currency.ForeignName, // IsActive = course.Currency.IsActive, // Symbol = course.Currency.Symbol, // }, // PeroidBeforeSendEmail = course.PeroidBeforeSendEmail == null ? new PeroidBeforeSendEmailDto() : new PeroidBeforeSendEmailDto() // { // Id = course.PeroidBeforeSendEmail.Id, // Name = course.PeroidBeforeSendEmail.Name, // ForeignName = course.PeroidBeforeSendEmail.ForeignName, // Hours = course.PeroidBeforeSendEmail.Hours, // }, // TypeOfExam = course.TypeOfExam == null ? new TypeOfExamDto() : new TypeOfExamDto() // { // Id = course.TypeOfExam.Id, // Name = course.TypeOfExam.Name, // ForeignName = course.TypeOfExam.ForeignName, // Cost = course.TypeOfExam.Cost // }, // TypeOfPacket = course.TypeOfPacket == null ? new TypeOfPacketDto() : new TypeOfPacketDto() // { // Id = course.TypeOfPacket.Id, // Name = course.TypeOfPacket.Name, // ForeignName = course.TypeOfPacket.ForeignName, // Cost = course.TypeOfPacket.Cost // } //}; return(result); }
public async Task <ActionResult <CustomerDto> > PutCustomer(int id, CustomerInputDto input) { DateTime?dateime = null; var customer = await _context.Customers.FindAsync(id); customer.FullName = input.FullName; customer.BirthDate = DateTimeString.TryParsingDate(input.BirthDate, false); customer.Address = input.Address; customer.City = input.City; customer.Country = input.Country; customer.Email = input.Email; customer.Gender = input.Gender; customer.Phone = input.Phone; customer.PostalCode = input.PostalCode; customer.UpdatedUserId = input.UserId; customer.UpdatedDate = DateTime.Now; customer.Note = input.Note; _context.Entry(customer).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Domain.Entities.Customer).FullName, Content = "@userName@updateAction@objTitle", TypeId = customer.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CustomerExists(id)) { return(NotFound()); } else { throw; } } var result = new CustomerDto() { Id = customer.Id, FullName = customer.FullName, BirthDate = customer.BirthDate, Address = customer.Address, City = customer.City, Country = customer.Country, Email = customer.Email, Gender = customer.Gender, Phone = customer.Phone, PostalCode = customer.PostalCode }; return(result); }
public async Task <ActionResult <CustomerDto> > PostCustomer(CustomerInputDto input) { try { DateTime?dateime = null; var customer = new Domain.Entities.Customer() { FullName = input.FullName, Address = input.Address, City = input.City, Country = input.Country, BirthDate = DateTimeString.TryParsingDate(input.BirthDate, false), Email = input.Email, Gender = input.Gender, Phone = input.Phone, PostalCode = input.PostalCode, CreatedDate = DateTime.Now, CreatedUserId = input.UserId, Note = input.Note }; _context.Customers.Add(customer); await _context.SaveChangesAsync(); //var course = new Course() //{ // ExamDate = dateime, // InChargeId = input.InChargeId, // CustomerId = customer.Id, // LessonPeriod = Domain.Enums.LessonPeriod.TwoHours, // Note = input.Note, // StartCourse = DateTimeString.TryParsingDate(input.StartCourse, false), // TotalAmount = 0, // CurrencyId = null, // PeroidBeforeSendEmailId = null, // TypeOfExamId = null, // TypeOfPacketId = null, // CreatedDate = DateTime.Now, // CreatedUserId = input.UserId //}; //course.RemainingMoney = course.TotalAmount; //course.Status = Domain.Enums.CourseStatus.NotStarted; //_context.Courses.Add(course); var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Domain.Entities.Customer).FullName, Content = "@userName@addAction@objTitle", TypeId = customer.Id, UserId = user.Id }; _context.Logs.Add(log); await _context.SaveChangesAsync(); var result = new CustomerDto() { Id = customer.Id, FullName = customer.FullName, BirthDate = customer.BirthDate, Address = customer.Address, City = customer.City, Country = customer.Country, Email = customer.Email, Gender = customer.Gender, Phone = customer.Phone, PostalCode = customer.PostalCode }; return(result); } catch (Exception ex) { return(null); } }
public async Task <ActionResult <PaymentDto> > PutPayment(int id, PaymentInputDto input) { EmailService emailService = new EmailService(_configuration, _smtp); DateTime? datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); var payment = await _context.Payments.FindAsync(id); var updatedAmount = payment.PaymentAmount != input.PaymentAmount; payment.PaymentAmount = input.PaymentAmount; payment.HandOverByUserId = input.HandOverByUserId; payment.CourseId = input.CourseId; payment.Note = input.Note; payment.PaymentDate = DateTimeString.TryParsingDate(input.PaymentDate, false); payment.PaymentTime = DateTimeString.TryParsingDate(input.PaymentTime, true); payment.UpdatedUserId = input.UserId; payment.UpdatedDate = DateTime.Now; var course = await _context.Courses.Where(x => x.Id == input.CourseId).Include(x => x.InCharge) .Include(x => x.Currency) .Include(x => x.Customer) .Include(x => x.TypeOfExam) .Include(x => x.TypeOfPacket) .Include(x => x.Payments) .Include(x => x.Lessons) .Include(x => x.PeroidBeforeSendEmail).FirstOrDefaultAsync(); var previousPayments = await _context.Payments.Where(x => !x.VirtualDeleted && x.CourseId == input.CourseId && x.Id != id && (x.PaymentDate < payment.PaymentDate || (x.PaymentDate == payment.PaymentDate && x.PaymentTime < payment.PaymentTime))).ToListAsync(); var allPreviousPayments = await _context.Payments.Where(x => !x.VirtualDeleted && x.Id != id && x.CourseId == input.CourseId).ToListAsync(); payment.RemainingMoney = previousPayments.Any() ? course.TotalAmount - previousPayments.Sum(x => x.PaymentAmount) - payment.PaymentAmount : course.TotalAmount - payment.PaymentAmount; course.RemainingMoney = allPreviousPayments.Any() ? course.TotalAmount - allPreviousPayments.Sum(x => x.PaymentAmount) - payment.PaymentAmount : course.TotalAmount - payment.PaymentAmount; _context.Entry(payment).State = EntityState.Modified; _context.Entry(course).State = EntityState.Modified; string sbjCode = Localization.GetValue("UpdatingPaymentSubject", ""); var email = course.Customer.Email; string htmlMsgCode = "<div style ='width: 100%; padding: 2%; margin: 2%;color:black;font-size: 13px; font-weight: 400;'>" + //"<div><a href=''><div><img src='https://sy-store.com/assets/logo.png' width='200' height='22'></div></a></div>" + "<br>" + "<br>" + "<div><h3 style='text-align: center;font-size: 23px;'> " + Localization.GetValue("UpdatingPaymentTitle", "") + "</h3></div>" + "<br>" + "<br>" + "<div><span style='color: black; font-size: 15px; font-weight: 600;'>" + Localization.GetValue("Dear", "") + " " + course.Customer.FullName + ", </span></div>" + "<br>" + "<div><span>" + Localization.GetValue("YouHavePaidOnUpdating", "") + " " + payment.PaymentAmount + " " + Localization.GetValue("EurosAccordingToOurAdministration", "") + Localization.GetValue("ThankYouForYourInterestInOurDrivingSchool", "") + "</span></div>" + "<br>" + "<div><span>" + Localization.GetValue("WithBestRegards", "") + "</span></div>" + "<br>" + "<div><span>" + "Monarijschool" + "</span></div>" + "</div>"; if (updatedAmount) { await emailService.SendEmail(email, sbjCode, htmlMsgCode); } var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Payment).FullName, Content = "@userName@updateAction@objTitle", TypeId = payment.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PaymentExists(id)) { return(NotFound()); } else { throw; } } var result = new PaymentDto() { Id = payment.Id, HandOverByUserId = payment.HandOverByUserId, HandOverByUserName = users.SingleOrDefault(y => y.Id == payment.HandOverByUserId).FullName, PaymentAmount = payment.PaymentAmount, PaymentDate = payment.PaymentDate.HasValue ? payment.PaymentDate.Value.ToString("yyyy/MM/dd") : "", PaymentTime = payment.PaymentTime.HasValue ? payment.PaymentTime.Value.ToString("HH:mm") : "", RemainingMoney = payment.RemainingMoney, Note = payment.Note, CourseId = payment.CourseId.HasValue ? payment.CourseId.Value : 0, }; return(result); }
public async Task <ActionResult <LessonDto> > PutLesson(int id, LessonInputDto input) { DateTime?datetime = null; var users = await _context.Users.Where(x => x.FullName != null).ToListAsync(); var lesson = await _context.Lessons.FindAsync(id); lesson.Date = DateTimeString.TryParsingDate(input.Date, false); lesson.Time = DateTimeString.TryParsingDate(input.Time, true); lesson.InChargeId = input.InChargeId; lesson.CourseId = input.CourseId; lesson.LessonPeriod = input.LessonPeriod; lesson.Note = input.Note; lesson.Status = Domain.Enums.LessonStatus.NotStarted; lesson.UpdatedUserId = input.UserId; lesson.UpdatedDate = DateTime.Now; _context.Entry(lesson).State = EntityState.Modified; var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == input.UserId); var log = new Log() { DateTime = DateTime.Now, TypeFullName = typeof(Lesson).FullName, Content = "@userName@updateAction@objTitle", TypeId = lesson.Id, UserId = user.Id }; _context.Logs.Add(log); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LessonExists(id)) { return(NotFound()); } else { throw; } } var result = new LessonDto() { Id = lesson.Id, Date = lesson.Date.HasValue ? lesson.Date.Value.ToString("G") : "", Time = lesson.Time.HasValue ? lesson.Time.Value.ToString("T") : "", TimeInTimes = lesson.Time.HasValue && lesson.Date.HasValue ? ((DateTime.Now.Date - lesson.Date.Value).TotalHours + (DateTime.Now.Hour - lesson.Time.Value.Hour)).ToString() : "0", CourseId = lesson.CourseId.HasValue ? lesson.CourseId.Value : 0, InChargeId = lesson.InChargeId, InChargeName = users.SingleOrDefault(y => y.Id == lesson.InChargeId).FullName, LessonPeriod = lesson.LessonPeriod, Note = lesson.Note, Status = lesson.Status }; return(result); }
public DateTime GetDateTime() { var fixedDateString = DateTimeString.Remove(0, 4).Replace("UTC ", ""); return(DateTime.ParseExact(fixedDateString, dateTimeFormat, System.Globalization.CultureInfo.InvariantCulture)); }