Exemplo n.º 1
0
 public static void SetCultureAvailable(string title)
 {
     using (var dbManager = new DbManager("tmresource"))
     {
         var sql = new SqlUpdate("res_cultures");
         sql.Set("available", true).Where("title", title);
         dbManager.ExecuteNonQuery(sql);
     }
 }
Exemplo n.º 2
0
        public static void AddLink(string resource, string fileName, string page)
        {
            using (var dbManager = new DbManager("tmresource"))
            {
                var query = new SqlQuery("res_data");
                query.Select("res_data.id")
                     .InnerJoin("res_files", Exp.EqColumns("res_files.id", "res_data.fileid"))
                     .Where("res_data.title", resource).Where("res_files.resName", fileName).Where("res_data.cultureTitle", "Neutral");

                var key = dbManager.ExecuteScalar<int>(query);

                var update = new SqlUpdate("res_data");
                update.Set("link", page).Where("id", key);
                dbManager.ExecuteNonQuery(update);
            }
        }
Exemplo n.º 3
0
 public static void UnLockModules()
 {
     using (var dbManager = new DbManager("tmresource"))
     {
         var sqlUpdate = new SqlUpdate("res_files");
         sqlUpdate.Set("isLock", 0);
         dbManager.ExecuteNonQuery(sqlUpdate);
     }
 }
Exemplo n.º 4
0
 public static void LockModules(string projectName, string modules)
 {
     using (var dbManager = new DbManager("tmresource"))
     {
         var sqlUpdate = new SqlUpdate("res_files");
         sqlUpdate.Set("isLock", 1).Where("projectName", projectName).Where(Exp.In("moduleName", modules.Split(',')));
         dbManager.ExecuteNonQuery(sqlUpdate);
     }
 }
        private void ChangeFolderCounters(
            IDbManager db,
            int tenant,
            string user,
            int folder,
            int unread_mess_diff,
            int total_mess_diff,
            int unread_conv_diff,
            int total_conv_diff)
        {
            if (0 == unread_mess_diff && 0 == total_mess_diff && 0 == unread_conv_diff && 0 == total_conv_diff)
                return;

            var update_query = new SqlUpdate(MAIL_FOLDER)
                    .Where(GetUserWhere(user, tenant))
                    .Where(FolderFields.folder, folder);

            if (0 != unread_mess_diff)
                update_query.Set(FolderFields.unread_messages_count + "=" +
                                         FolderFields.unread_messages_count + "+(" + unread_mess_diff + ")");

            if (0 != total_mess_diff)
                update_query.Set(FolderFields.total_messages_count + "=" +
                                         FolderFields.total_messages_count + "+(" + total_mess_diff + ")");

            if (0 != unread_conv_diff)
                update_query.Set(FolderFields.unread_conversations_count + "=" +
                                         FolderFields.unread_conversations_count + "+(" + unread_conv_diff + ")");

            if (0 != total_conv_diff)
                update_query.Set(FolderFields.total_conversations_count + "=" +
                                         FolderFields.total_conversations_count + "+(" + total_conv_diff + ")");


            if (0 == db.ExecuteNonQuery(update_query))
                RecalculateFolders(db, tenant, user);
        }
        public void SetMailboxAuthError(MailBox mailbox, bool isError)
        {
            using (var db = GetDb())
            {
                var updateQuery = new SqlUpdate(MailboxTable.name)
                    .Where(MailboxTable.Columns.id, mailbox.MailBoxId)
                    .Where(MailboxTable.Columns.id_user, mailbox.UserId)
                    .Where(MailboxTable.Columns.id_tenant, mailbox.TenantId);

                if (isError)
                {
                    mailbox.AuthErrorDate = DateTime.UtcNow;
                    updateQuery.Where(MailboxTable.Columns.date_auth_error, null)
                               .Set(MailboxTable.Columns.date_auth_error, mailbox.AuthErrorDate.Value);
                }
                else
                {
                    updateQuery.Set(MailboxTable.Columns.date_auth_error, null);
                    mailbox.AuthErrorDate = null;
                }

                db.ExecuteNonQuery(updateQuery);
            }
        }
        public bool SaveMailBox(MailBox mailbox)
        {
            if (mailbox == null) throw new ArgumentNullException("mailbox");

            var idMailbox = MailBoxExists(GetAddress(mailbox.EMail), mailbox.UserId, mailbox.TenantId);

            using (var db = GetDb())
            {
                int result;

                var loginDelayTime = GetLoginDelayTime(mailbox);

                if (idMailbox == 0)
                {
                    var utcNow = DateTime.UtcNow;
                    
                    result = db.ExecuteScalar<int>(
                        new SqlInsert(MailboxTable.name)
                            .InColumnValue(MailboxTable.Columns.id, 0)
                            .InColumnValue(MailboxTable.Columns.id_tenant, mailbox.TenantId)
                            .InColumnValue(MailboxTable.Columns.id_user, mailbox.UserId)
                            .InColumnValue(MailboxTable.Columns.address, GetAddress(mailbox.EMail))
                            .InColumnValue(MailboxTable.Columns.name, mailbox.Name)
                            .InColumnValue(MailboxTable.Columns.password, EncryptPassword(mailbox.Password))
                            .InColumnValue(MailboxTable.Columns.msg_count_last, mailbox.MessagesCount)
                            .InColumnValue(MailboxTable.Columns.smtp_password,
                                           string.IsNullOrEmpty(mailbox.SmtpPassword)
                                               ? EncryptPassword(mailbox.Password)
                                               : EncryptPassword(mailbox.SmtpPassword))
                            .InColumnValue(MailboxTable.Columns.size_last, mailbox.Size)
                            .InColumnValue(MailboxTable.Columns.login_delay, loginDelayTime)
                            .InColumnValue(MailboxTable.Columns.enabled, true)
                            .InColumnValue(MailboxTable.Columns.imap, mailbox.Imap)
                            .InColumnValue(MailboxTable.Columns.begin_date, mailbox.BeginDate)
                            .InColumnValue(MailboxTable.Columns.service_type, mailbox.ServiceType)
                            .InColumnValue(MailboxTable.Columns.refresh_token, mailbox.RefreshToken)
                            .InColumnValue(MailboxTable.Columns.id_smtp_server, mailbox.SmtpServerId)
                            .InColumnValue(MailboxTable.Columns.id_in_server, mailbox.InServerId)
                            .InColumnValue(MailboxTable.Columns.date_created, utcNow)
                            .Identity(0, 0, true));

                    mailbox.MailBoxId = result;
                    mailbox.Enabled = true;
                }
                else
                {
                    mailbox.MailBoxId = idMailbox;

                    var queryUpdate = new SqlUpdate(MailboxTable.name)
                        .Where(MailboxTable.Columns.id, idMailbox)
                        .Set(MailboxTable.Columns.id_tenant, mailbox.TenantId)
                        .Set(MailboxTable.Columns.id_user, mailbox.UserId)
                        .Set(MailboxTable.Columns.address, GetAddress(mailbox.EMail))
                        .Set(MailboxTable.Columns.name, mailbox.Name)
                        .Set(MailboxTable.Columns.password, EncryptPassword(mailbox.Password))
                        .Set(MailboxTable.Columns.msg_count_last, mailbox.MessagesCount)
                        .Set(MailboxTable.Columns.smtp_password,
                             string.IsNullOrEmpty(mailbox.SmtpPassword)
                                 ? EncryptPassword(mailbox.Password)
                                 : EncryptPassword(mailbox.SmtpPassword))
                        .Set(MailboxTable.Columns.size_last, mailbox.Size)
                        .Set(MailboxTable.Columns.login_delay, loginDelayTime)
                        .Set(MailboxTable.Columns.is_removed, false)
                        .Set(MailboxTable.Columns.imap, mailbox.Imap)
                        .Set(MailboxTable.Columns.begin_date, mailbox.BeginDate)
                        .Set(MailboxTable.Columns.service_type, mailbox.ServiceType)
                        .Set(MailboxTable.Columns.refresh_token, mailbox.RefreshToken)
                        .Set(MailboxTable.Columns.id_smtp_server, mailbox.SmtpServerId)
                        .Set(MailboxTable.Columns.id_in_server, mailbox.InServerId);

                    if (mailbox.BeginDate == MinBeginDate)
                    {
                        var currentMailbox = GetMailBox(idMailbox);

                        if (currentMailbox == null)
                            throw new ItemNotFoundException("Mailbox was removed");

                        if (mailbox.BeginDate != currentMailbox.BeginDate)
                        {
                            foreach (var folderName in currentMailbox.ImapIntervals.Keys)
                            {
                                var imapIntervals =
                                    new ImapIntervals(currentMailbox.ImapIntervals[folderName].UnhandledUidIntervals);

                                if (currentMailbox.ImapIntervals[folderName].BeginDateUid != 1)
                                    imapIntervals.AddUnhandledInterval(new UidInterval(1,
                                                                                       currentMailbox.ImapIntervals[
                                                                                           folderName].BeginDateUid));
                                
                                currentMailbox.ImapIntervals[folderName].UnhandledUidIntervals =
                                    new List<int>(imapIntervals.ToIndexes());

                                currentMailbox.ImapIntervals[folderName].BeginDateUid = 1;
                            }

                            queryUpdate.Set(MailboxTable.Columns.imap_intervals, currentMailbox.ImapIntervalsJson);
                        }

                    }

                    result = db.ExecuteNonQuery(queryUpdate);
                }

                return result > 0;
            }
        }
Exemplo n.º 8
0
        public static void EditEnglish(ResWord word)
        {
            using (var dbManager = new DbManager("tmresource"))
            {
                var update = new SqlUpdate("res_data");

                update.Set("textvalue", word.ValueFrom).Where("fileID", word.ResFile.FileID).Where("title", word.Title).Where("cultureTitle", "Neutral");

                dbManager.ExecuteNonQuery(update);

            }
        }
        public void SetAuthError(MailBox mailbox, bool error)
        {
            using (var db = GetDb())
            {
                var instr = new SqlUpdate(MailboxTable.name)
                    .Where(MailboxTable.Columns.id, mailbox.MailBoxId)
                    .Where(MailboxTable.Columns.id_user, mailbox.UserId)
                    .Where(MailboxTable.Columns.id_tenant, mailbox.TenantId);

                db.ExecuteNonQuery(error
                                       ? instr.Where(MailboxTable.Columns.auth_error, null)
                                              .Set(MailboxTable.Columns.auth_error, DateTime.UtcNow.Ticks)
                                       : instr.Set(MailboxTable.Columns.auth_error, null));

                if (mailbox.AuthError == MailBox.AuthProblemType.NoProblems)
                    return;

                switch (mailbox.AuthError)
                {
                    case MailBox.AuthProblemType.ConnectError:
                        CreateAuthErrorWarningAlert(mailbox.TenantId, mailbox.UserId, mailbox.MailBoxId);
                        break;
                    case MailBox.AuthProblemType.TooManyErrors:
                        CreateAuthErrorDisableAlert(mailbox.TenantId, mailbox.UserId, mailbox.MailBoxId);
                        EnableMaibox(mailbox, false);
                        break;
                    default:
                        return;
                }


            }
        }
        public bool SaveMailBox(MailBox mail_box)
        {
            if (mail_box == null) throw new ArgumentNullException("mail_box");

            var id_mailbox = MailBoxExists(GetAddress(mail_box.EMail), mail_box.UserId, mail_box.TenantId);

            using (var db = GetDb())
            {
                int result;

                var login_delay_time = GetLoginDelayTime(mail_box);

                if (id_mailbox == 0)
                {
                    result = db.ExecuteScalar<int>(
                        new SqlInsert(MAIL_MAILBOX)
                            .InColumnValue(MailBoxFields.id, 0)
                            .InColumnValue(MailBoxFields.id_tenant, mail_box.TenantId)
                            .InColumnValue(MailBoxFields.id_user, mail_box.UserId)
                            .InColumnValue(MailBoxFields.address, GetAddress(mail_box.EMail))
                            .InColumnValue(MailBoxFields.name, mail_box.Name)
                            .InColumnValue(MailBoxFields.password, EncryptPassword(mail_box.Password))
                            .InColumnValue(MailBoxFields.msg_count_last, mail_box.MessagesCount)
                            .InColumnValue(MailBoxFields.smtp_password,
                                           string.IsNullOrEmpty(mail_box.SmtpPassword)
                                               ? EncryptPassword(mail_box.Password)
                                               : EncryptPassword(mail_box.SmtpPassword))
                            .InColumnValue(MailBoxFields.size_last, mail_box.Size)
                            .InColumnValue(MailBoxFields.login_delay, login_delay_time)
                            .InColumnValue(MailBoxFields.enabled, true)
                            .InColumnValue(MailBoxFields.imap, mail_box.Imap)
                            .InColumnValue(MailBoxFields.begin_date, mail_box.BeginDate)
                            .InColumnValue(MailBoxFields.service_type, mail_box.ServiceType)
                            .InColumnValue(MailBoxFields.refresh_token, mail_box.RefreshToken)
                            .InColumnValue(MailBoxFields.id_smtp_server, mail_box.SmtpServerId)
                            .InColumnValue(MailBoxFields.id_in_server, mail_box.InServerId)
                            .Identity(0, 0, true));

                    mail_box.MailBoxId = result;
                }
                else
                {
                    mail_box.MailBoxId = id_mailbox;

                    var query_update = new SqlUpdate(MAIL_MAILBOX)
                        .Where(MailBoxFields.id, id_mailbox)
                        .Set(MailBoxFields.id_tenant, mail_box.TenantId)
                        .Set(MailBoxFields.id_user, mail_box.UserId)
                        .Set(MailBoxFields.address, GetAddress(mail_box.EMail))
                        .Set(MailBoxFields.name, mail_box.Name)
                        .Set(MailBoxFields.password, EncryptPassword(mail_box.Password))
                        .Set(MailBoxFields.msg_count_last, mail_box.MessagesCount)
                        .Set(MailBoxFields.smtp_password,
                             string.IsNullOrEmpty(mail_box.SmtpPassword)
                                 ? EncryptPassword(mail_box.Password)
                                 : EncryptPassword(mail_box.SmtpPassword))
                        .Set(MailBoxFields.size_last, mail_box.Size)
                        .Set(MailBoxFields.login_delay, login_delay_time)
                        .Set(MailBoxFields.is_removed, false)
                        .Set(MailBoxFields.imap, mail_box.Imap)
                        .Set(MailBoxFields.begin_date, mail_box.BeginDate)
                        .Set(MailBoxFields.service_type, mail_box.ServiceType)
                        .Set(MailBoxFields.refresh_token, mail_box.RefreshToken)
                        .Set(MailBoxFields.id_smtp_server, mail_box.SmtpServerId)
                        .Set(MailBoxFields.id_in_server, mail_box.InServerId);

                    if (mail_box.BeginDate == MIN_BEGIN_DATE)
                        query_update.Set(MailBoxFields.imap_folders, "[]");

                    result = db.ExecuteNonQuery(query_update);
                }

                return result > 0;
            }
        }
 public void SetAuthError(MailBox mailbox, bool error)
 {
     using (var db = GetDb())
     {
         var instr = new SqlUpdate(MAIL_MAILBOX)
                 .Where(MailBoxFields.id, mailbox.MailBoxId)
                 .Where(MailBoxFields.id_user, mailbox.UserId)
                 .Where(MailBoxFields.id_tenant, mailbox.TenantId);
         db.ExecuteNonQuery(error
                                ? instr.Where(MailBoxFields.auth_error, null)
                                       .Set(MailBoxFields.auth_error, DateTime.UtcNow.Ticks)
                                : instr.Set(MailBoxFields.auth_error, null));
     }
 }
Exemplo n.º 12
0
        public Event UpdateEvent(int eventId, int calendarId, Guid ownerId, string name, string description,
                DateTime utcStartDate, DateTime utcEndDate, RecurrenceRule rrule, EventAlertType alertType, bool isAllDayLong, List<ASC.Web.Core.Calendars.SharingOptions.PublicItem> publicItems)
        {

            using (var tr = DbManager.BeginTransaction())
            {
                var query = new SqlUpdate("calendar_events")
                                .Set("name", name)
                                .Set("description", description)
                                .Set("calendar_id", calendarId)
                                .Set("owner_id", ownerId)
                                .Set("start_date", utcStartDate.ToString("yyyy-MM-dd HH:mm:ss"))
                                .Set("end_date", utcEndDate.ToString("yyyy-MM-dd HH:mm:ss"))
                                .Set("all_day_long", isAllDayLong)
                                .Set("rrule", rrule.ToString())
                                .Where(Exp.Eq("id", eventId));

                if (ownerId.Equals(SecurityContext.CurrentAccount.ID))
                    query = query.Set("alert_type", (int)alertType);
                else
                    DbManager.ExecuteNonQuery(new SqlInsert("calendar_event_user", true).InColumnValue("event_id", eventId)
                                                                                    .InColumnValue("user_id", SecurityContext.CurrentAccount.ID)
                                                                                    .InColumnValue("alert_type", alertType));


                DbManager.ExecuteNonQuery(query);

                var userIds = DbManager.ExecuteList(new SqlQuery("calendar_event_user").Select("user_id").Where("event_id", eventId)).Select(r => new Guid(Convert.ToString(r[0])));
                foreach (var usrId in userIds)
                {
                    if (!publicItems.Exists(i => (i.IsGroup && CoreContext.UserManager.IsUserInGroup(usrId, i.Id))
                                              || (!i.IsGroup && i.Id.Equals(usrId))))
                    {
                        DbManager.ExecuteNonQuery(new SqlDelete("calendar_event_user").Where(Exp.Eq("user_id", usrId) & Exp.Eq("event_id", eventId)));
                    }
                }

                DbManager.ExecuteNonQuery(new SqlDelete("calendar_event_item").Where("event_id", eventId));
                foreach (var item in publicItems)
                {
                    DbManager.ExecuteNonQuery(new SqlInsert("calendar_event_item")
                                                   .InColumnValue("event_id", eventId)
                                                   .InColumnValue("item_id", item.Id)
                                                   .InColumnValue("is_group", item.IsGroup));


                }

                //update notifications
                var baseAlertType = DbManager.ExecuteList(new SqlQuery("calendar_events").Select("alert_type").Where("id", eventId))
                                    .Select(r => (EventAlertType)Convert.ToInt32(r[0])).First();
                UpdateEventNotifications(eventId, calendarId, utcStartDate, baseAlertType, rrule, publicItems, null);


                tr.Commit();
            }

            return GetEventById(eventId);
        }
Exemplo n.º 13
0
 public static void UpdateDeletedData(int fileId, DateTime date)
 {
     using (var dbManager = new DbManager("tmresource"))
     {
         var sqlUpdate = new SqlUpdate("res_data");
         sqlUpdate.Set("flag", 4).Where("flag", 1).Where(Exp.Lt("TimeChanges", date)).Where("fileID", fileId);
         dbManager.ExecuteNonQuery(sqlUpdate);
     }
 }
Exemplo n.º 14
0
 public static void AddComment(ResWord word)
 {
     using (var dbManager = new DbManager("tmresource"))
     {
         var sqlUpdate = new SqlUpdate("res_data");
         sqlUpdate.Set("description", word.TextComment).Where("title", word.Title).Where("fileID", word.ResFile.FileID).Where("cultureTitle", "Neutral");
         dbManager.ExecuteNonQuery(sqlUpdate);
     }
 }
        private void ChangeFolderCounters(IDbManager db, int tenant, string user, int folder, int unreadDiff,
                                          int totalDiff, bool isConversation)
        {
            var res = 0;
            if (unreadDiff != 0 || totalDiff != 0)
            {
                var updateQuery = new SqlUpdate(FolderTable.name)
                    .Where(GetUserWhere(user, tenant))
                    .Where(FolderTable.Columns.folder, folder);

                if (unreadDiff != 0)
                {
                    if (isConversation)
                        updateQuery.Set(FolderTable.Columns.unread_conversations_count + "=" +
                                         FolderTable.Columns.unread_conversations_count + "+(" + unreadDiff + ")");
                    else
                        updateQuery.Set(FolderTable.Columns.unread_messages_count + "=" + FolderTable.Columns.unread_messages_count +
                                         "+(" + unreadDiff + ")");
                }

                if (totalDiff != 0)
                {
                    if (isConversation)
                        updateQuery.Set(FolderTable.Columns.total_conversations_count + "=" +
                                         FolderTable.Columns.total_conversations_count + "+(" + totalDiff + ")");
                    else
                    {
                        updateQuery.Set(FolderTable.Columns.total_messages_count + "=" +
                                         FolderTable.Columns.total_messages_count + "+(" + totalDiff + ")");
                    }
                }

                res = db.ExecuteNonQuery(updateQuery);
            }

            if (0 == res)
                RecalculateFolders(db, tenant, user);
        }
        private void ChangeFolderCounters(
            IDbManager db,
            int tenant,
            string user,
            int folder,
            int unreadMessDiff,
            int totalMessDiff,
            int unreadConvDiff,
            int totalConvDiff)
        {
            if (0 == unreadMessDiff && 0 == totalMessDiff && 0 == unreadConvDiff && 0 == totalConvDiff)
                return;

            var updateQuery = new SqlUpdate(FolderTable.name)
                    .Where(GetUserWhere(user, tenant))
                    .Where(FolderTable.Columns.folder, folder);

            if (0 != unreadMessDiff)
                updateQuery.Set(FolderTable.Columns.unread_messages_count + "=" +
                                         FolderTable.Columns.unread_messages_count + "+(" + unreadMessDiff + ")");

            if (0 != totalMessDiff)
                updateQuery.Set(FolderTable.Columns.total_messages_count + "=" +
                                         FolderTable.Columns.total_messages_count + "+(" + totalMessDiff + ")");

            if (0 != unreadConvDiff)
                updateQuery.Set(FolderTable.Columns.unread_conversations_count + "=" +
                                         FolderTable.Columns.unread_conversations_count + "+(" + unreadConvDiff + ")");

            if (0 != totalConvDiff)
                updateQuery.Set(FolderTable.Columns.total_conversations_count + "=" +
                                         FolderTable.Columns.total_conversations_count + "+(" + totalConvDiff + ")");


            if (0 == db.ExecuteNonQuery(updateQuery))
                RecalculateFolders(db, tenant, user);
        }
        public bool EnableMaibox(DbManager db, MailBox mailbox, bool enabled)
        {
            var updateQuery = new SqlUpdate(MailboxTable.name)
                .Where(MailboxTable.Columns.id, mailbox.MailBoxId)
                .Where(GetUserWhere(mailbox.UserId, mailbox.TenantId))
                .Where(MailboxTable.Columns.is_removed, false)
                .Set(MailboxTable.Columns.enabled, enabled);

            if (enabled)
                updateQuery.Set(MailboxTable.Columns.date_auth_error, null);

            var result = db.ExecuteNonQuery(updateQuery);

            return result > 0;
        }