Esempio n. 1
0
        public Application CreateApplication(IReadOnlyList <string> applicationParameters, string customerID, decimal amount, int period)
        {
            var applicationToCreate = new Application();

            applicationToCreate.CustomerID          = customerID;
            applicationToCreate.CustomerFirstName   = applicationParameters[0];
            applicationToCreate.CustomerSecondName  = applicationParameters[1];
            applicationToCreate.CustomerFullName    = $"{applicationToCreate.CustomerFirstName} {applicationToCreate.CustomerSecondName}";
            applicationToCreate.PhoneNumber         = applicationParameters[2];
            applicationToCreate.RegisteredOn        = DateTime.Now;
            applicationToCreate.LastChangedOn       = DateTime.Now;
            applicationToCreate.ApplicationStatusID = 1;
            applicationToCreate.LoanAmount          = amount;
            applicationToCreate.LoanPeriodInMonths  = period;
            applicationToCreate.EmailOriginalID     = applicationParameters[3];

            //applicationToCreate.Seal();

            context.Applications.Add(applicationToCreate);
            //var email = this.context.Emails.FirstOrDefault(e => e.OriginalId == applicationToCreate.EmailOriginalID);
            //email.IsDeleted = true;

            context.SaveChanges();

            return(applicationToCreate);
        }
        public Email MarkEmailAsNew(int id)
        {
            var email = this.context.Emails.FirstOrDefault(e => e.ID == id);

            var status = this.context.EmailStatuses.FirstOrDefault(s => s.StatusName == "new");

            //var statusID = this.context.EmailStatuses.FirstOrDefault(s => s.ID == 2);

            email.Status   = status;
            email.StatusID = status.ID;

            context.SaveChanges();

            return(email);
        }
        public async Task <IReadOnlyCollection <Email> > SyncEmails(string accessToken)
        {
            var newMessagesList = new List <GmailMessageObject>();
            var messageList     = await this.SendRequestAsync <GmailMessageListObject>(this.gmailUrlOptions.Messages, accessToken);

            var messages = messageList.Messages;

            //var userProfile = this.SendRequestAsync<GmailUserProfileObject>(this.gmailUrlOptions.UserProfile, accessToken);
            var lastAddedMessageMailboxId = (await this.context.Emails.FirstOrDefaultAsync())?.OriginalId;

            var newEmails     = new List <Email>();
            var initialStatus = context.EmailStatuses
                                .FirstOrDefault(x => x.StatusName.ToLower() == "not reviewed");

            foreach (var message in messageList.Messages)
            {
                var messageWithDetails = await this.SendRequestAsync <GmailMessageObject>(this.gmailUrlOptions.Message + message.Id, accessToken);

                var emailToAdd = new Email
                {
                    OriginalId = message.Id,
                    StoredOn   = DateTime.Now,
                    Status     = initialStatus,
                    StatusID   = initialStatus.ID,
                };

                newEmails.Add(emailToAdd);

                await this.ParseDetailsWithoutBody(message, emailToAdd, accessToken);

                await this.ModifyLabelsAsync(this.gmailUrlOptions.Message + message.Id, accessToken);
            }

            context.SaveChanges();

            return(newEmails);
        }