Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        public void TickPrecisionDateTimeTest()
        {
            DateTime dt = KnownTimeWithTicks;

            DateTimeString val = new DateTimeString { When = dt },
                clone = Serializer.DeepClone(val);
            Assert.AreEqual(dt, clone.When);
        }
Esempio n. 3
0
        public void TickPrecisionDateTimeTest()
        {
            DateTime dt = KnownTimeWithTicks;

            DateTimeString val = new DateTimeString {
                When = dt
            },
                           clone = Serializer.DeepClone(val);

            Assert.AreEqual(dt, clone.When);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        public DateTime GetDateTime()
        {
            var fixedDateString = DateTimeString.Remove(0, 4).Replace("UTC ", "");

            return(DateTime.ParseExact(fixedDateString, dateTimeFormat, System.Globalization.CultureInfo.InvariantCulture));
        }