/// <summary>
 /// Indicates if the operation is successful or not.
 /// </summary>
 /// <param name="status">The operation in context.</param>
 /// <returns>Indication if the operation is a success or not.</returns>
 public static bool IsOperationSuccessful(this SystemDbStatus status)
 {
     return(status == SystemDbStatus.Selected || status == SystemDbStatus.Inserted ||
            status == SystemDbStatus.Updated ||
            status == SystemDbStatus.Deleted || status == SystemDbStatus.Flushed ||
            status == SystemDbStatus.MetaUpdated || status == SystemDbStatus.NoContent ||
            status == SystemDbStatus.NotModified);
 }
 public async Task<StatusData<string>> UpsertCategoryFriends(CategoryFriends request, SystemDbStatus mode, SystemSession session)
 {
     var userCategory = new UserCategory { UserId = session.UserId.ToString(), UserCategoryTypeId = request.CategoryId };
     var friends = request.Friends != null && request.Friends.Any() ? String.Join(",", request.Friends) : null;
     var result = (mode == SystemDbStatus.Inserted
                 ? await
                     Task.Factory.StartNew(
                         () => Client.UserService.insertInCategory(userCategory, friends, session.GetSession())).ConfigureAwait(false)
                 : await
                     Task.Factory.StartNew(
                         () => Client.UserService.removeFromCategory(userCategory, friends, session.GetSession())).ConfigureAwait(false));
     return result.GetStatusData<string>();
 }
        public async Task <SystemDbStatus> DeleteCategory(DeleteCategory request, SystemDbStatus mode)
        {
            var categoryIdsObj = new ObjectParameter("USERCATEGORYTYPEIDS", string.Join(",", request.CategoryList));

            return((SystemDbStatus)await Task.Factory.StartNew(() => Context.PROC_UPSERT_CATEGORY(request.UserId, (byte?)mode, string.Empty, string.Empty, null, categoryIdsObj).FirstOrDefault().GetValueOrDefault()).ConfigureAwait(false));
        }
 public Task<StatusData<GeneralKvPair<int, List<long>>>> UpsertRule(RequestBase request, SystemDbStatus dbMode, SystemSession session)
 {
     return _jUnitOfWork.Inbox.UpsertRule(request, dbMode, session);
 }
 public Task<StatusData<GeneralKvPair<int, List<long>>>> UpsertInbox(InboxRequest request, int? folderId, SystemDbStatus dbMode, SystemSession session)
 {
     return _jUnitOfWork.Inbox.UpsertInbox(request, session);
 }
 public Task<StatusData<string>> UpsertCategoryFriends(CategoryFriends request, SystemDbStatus mode, SystemSession session)
 {
     return _jUnitOfWork.Category.UpsertCategoryFriends(request, mode, session);
 }
 public Task<StatusData<string>> DeleteCategory(DeleteCategory request, SystemDbStatus mode, SystemSession session)
 {
     return _jUnitOfWork.Category.DeleteCategory(request, session);
 }
Beispiel #8
0
 /// <summary>
 /// Compares current status with given status.
 /// </summary>
 /// <param name="currentStatus">Current status.</param>
 /// <param name="status">Status to compare with.</param>
 /// <returns>Result as to whether or not both match.</returns>
 public static bool IsStatusSame(this SystemDbStatus currentStatus, SystemDbStatus status)
 {
     return(currentStatus == status);
 }
Beispiel #9
0
        public async Task <StatusData <GeneralKvPair <int, List <long> > > > UpsertRule(int userId, RequestBase request, SystemDbStatus dbMode)
        {
            var result = new StatusData <GeneralKvPair <int, List <long> > >();

            var folderId      = 0;
            var messageRuleId = string.Empty;
            var ruleString    = string.Empty;

            if (dbMode == SystemDbStatus.Inserted)
            {
                var req = request as RuleAddRequest;
                if (req != null)
                {
                    folderId   = req.FolderId;
                    ruleString = req.Rule.ToString();
                }
            }
            else
            {
                var req = request as RuleUpdateRequest;
                if (req != null)
                {
                    messageRuleId = req.MessageRuleId.ToString();
                    ruleString    = req.Rule.ToString();
                }
            }

            var folderIdObj       = new ObjectParameter("FOLDERID", folderId);
            var messageRuleIdsObj = new ObjectParameter("MESSAGERULEIDS", messageRuleId);

            // var rules = ruleString.Substring(0, ruleString.Length - 1);

            result.Status = (SystemDbStatus)await Task.Factory.StartNew(() => Context.PROC_UPSERT_INBOX_RULES(userId, (byte)dbMode, ruleString, folderIdObj, messageRuleIdsObj).FirstOrDefault().GetValueOrDefault());

            result.Data = new GeneralKvPair <int, List <long> >();
            if (result.Status.IsOperationSuccessful())
            {
                result.Data.Id = Convert.ToInt32(folderIdObj.Value);
                ruleString     = messageRuleIdsObj.Value.ToString();
                if (!string.IsNullOrWhiteSpace(ruleString))
                {
                    result.Data.Value = (ruleString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt64(x))).ToList();
                }
            }
            return(result);
        }
Beispiel #10
0
 public Task <StatusData <string> > UpsertCategoryFriends(CategoryFriends request, SystemDbStatus mode, SystemSession session)
 {
     return(_jUnitOfWork.Category.UpsertCategoryFriends(request, mode, session));
 }
Beispiel #11
0
 public Task <StatusData <string> > DeleteCategory(DeleteCategory request, SystemDbStatus mode, SystemSession session)
 {
     return(_jUnitOfWork.Category.DeleteCategory(request, session));
 }
Beispiel #12
0
 public Task <StatusData <GeneralKvPair <int, List <long> > > > UpsertRule(RequestBase request, SystemDbStatus dbMode, SystemSession session)
 {
     return(_jUnitOfWork.Inbox.UpsertRule(request, dbMode, session));
 }
Beispiel #13
0
 public Task <StatusData <GeneralKvPair <int, List <long> > > > UpsertInbox(InboxRequest request, int?folderId, SystemDbStatus dbMode, SystemSession session)
 {
     return(_jUnitOfWork.Inbox.UpsertInbox(request, session));
 }
Beispiel #14
0
        /// <summary>
        /// Generates system-formatted unique response message for the client.
        /// </summary>
        /// <typeparam name="T">The type to return to the client.</typeparam>
        /// <param name="request">Current request in context.</param>
        /// <param name="dbStatusCode">Status code as returned from database, if any.</param>
        /// <param name="data">The payload to be returned of type T.</param>
        /// <param name="forceIncludeDataOnError">Direction as to whether or not data object be sent with the response even when there is error.</param>
        /// <param name="message">Message to be returned, if any.</param>
        /// <param name="subCode">Sub status code further elaborating the status code.</param>
        /// <returns>System-formatted response message.</returns>
        public static HttpResponseMessage SystemResponse <T>(this HttpRequestMessage request, SystemDbStatus dbStatusCode, T data = null, bool forceIncludeDataOnError = false, string message = null, int subCode = 0) where T : class
        {
            var status = new StatusData <T> {
                Status = dbStatusCode, Data = data, SubStatus = subCode
            };

            return(request.SystemResponse(status, forceIncludeDataOnError, message));
        }
        public async Task <SystemDbStatus> UpsertCategory(CategoryFriends request, int categoryId, SystemDbStatus mode)
        {
            var friends = request.Friends != null && request.Friends.Any() ? String.Join(",", request.Friends) : null;
            var result  = (SystemDbStatus)await Task.Factory.StartNew(() => Context.PROC_UPSERT_CATEGORY_FRIENDS(request.UserId, (byte?)mode, friends, categoryId).FirstOrDefault().GetValueOrDefault()).ConfigureAwait(false);

            return(result);
        }
Beispiel #16
0
        public async Task <StatusData <GeneralKvPair <int, List <long> > > > UpsertInbox(InboxRequest request, int?folderId, SystemDbStatus dbMode)
        {
            var result            = new StatusData <GeneralKvPair <int, List <long> > >();
            var folderIdObj       = new ObjectParameter("FOLDERID", folderId ?? 0);
            var messageRuleIdsObj = new ObjectParameter("MESSAGERULEIDS", typeof(string));

            var rules = string.Empty;

            if (request.Rule != null && request.Rule.Any())
            {
                var sb = new StringBuilder();
                foreach (var rule in request.Rule)
                {
                    sb.Append(rule).Append("|");
                }
                rules = sb.ToString().Substring(0, sb.Length - 1);
            }
            result.Status = (SystemDbStatus)await Task.Factory.StartNew(() => Context.PROC_UPSERT_INBOX(request.UserId, request.Name, rules, (byte)dbMode, folderIdObj, messageRuleIdsObj).FirstOrDefault().GetValueOrDefault());

            result.Data = new GeneralKvPair <int, List <long> >();
            if (result.Status.IsOperationSuccessful())
            {
                result.Data.Id = Convert.ToInt32(folderIdObj.Value);
                rules          = messageRuleIdsObj.Value.ToString();
                if (!string.IsNullOrWhiteSpace(rules))
                {
                    result.Data.Value = (rules.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToInt64(x))).ToList();
                }
            }
            return(result);
        }
        public async Task<StatusData<GeneralKvPair<int, List<long>>>> UpsertRule(RequestBase request, SystemDbStatus dbMode, SystemSession session)
        {
            var result = new StatusData<GeneralKvPair<int, List<long>>>();

            if (dbMode == SystemDbStatus.Inserted)
            {
                var req = request as RuleAddRequest;

                var ruleRequest = new Kauwa.Inbox { UserId = request.UserId, FolderId = req.FolderId, InboxRules = new List<InboxRule> { new InboxRule { TypeUserSelection = (int)req.Rule.UserSelection, RuleTypeUser = (int)req.Rule.RuleTypeUser, ContactList = req.Rule.ContactList, GroupList = req.Rule.GroupList, RuleTypeSubject = (int)req.Rule.RuleTypeSubject, Subject = req.Rule.Subject, ApplyOnOldMessage = req.Rule.ApplyOnOldMessage } } };

                var response = await Task.Factory.StartNew(() => Client.InboxRuleService.createInboxRules(ruleRequest, session.GetSession())).ConfigureAwait(false);
                result.Status = (SystemDbStatus)response.DbStatusCode;

                result.Data = new GeneralKvPair<int, List<long>>
                {
                    Id = response.FolderId,
                    Value = response.InboxRules != null ? response.InboxRules.Select(x => x.RuleId).ToList() : null
                };

                result.SubStatus = response.DbSubStatusCode;
                result.Message = response.DbStatusMsg;
                return result;
            }
            else
            {
                var req = request as RuleUpdateRequest;

                var ruleRequest = new Kauwa.Inbox { UserId = request.UserId, FolderId = req.FolderId, InboxRules = new List<InboxRule> { new InboxRule { RuleId = req.MessageRuleId, TypeUserSelection = (int)req.Rule.UserSelection, RuleTypeUser = (int)req.Rule.RuleTypeUser, ContactList = req.Rule.ContactList, GroupList = req.Rule.GroupList, RuleTypeSubject = (int)req.Rule.RuleTypeSubject, Subject = req.Rule.Subject, ApplyOnOldMessage = req.Rule.ApplyOnOldMessage } } };

                result = (await Task.Factory.StartNew(() => Client.InboxRuleService.updateInboxRules(ruleRequest, session.GetSession())).ConfigureAwait(false)).GetStatusData<GeneralKvPair<int, List<long>>>();
                return result;
            }
        }
        public async Task <StatusData <string> > UpsertCategoryFriends(CategoryFriends request, SystemDbStatus mode, SystemSession session)
        {
            var userCategory = new UserCategory {
                UserId = session.UserId.ToString(), UserCategoryTypeId = request.CategoryId
            };
            var friends = request.Friends != null && request.Friends.Any() ? String.Join(",", request.Friends) : null;
            var result  = (mode == SystemDbStatus.Inserted
                        ? await
                           Task.Factory.StartNew(
                               () => Client.UserService.insertInCategory(userCategory, friends, session.GetSession())).ConfigureAwait(false)
                        : await
                           Task.Factory.StartNew(
                               () => Client.UserService.removeFromCategory(userCategory, friends, session.GetSession())).ConfigureAwait(false));

            return(result.GetStatusData <string>());
        }
        public async Task <StatusData <GeneralKvPair <int, List <long> > > > UpsertRule(RequestBase request, SystemDbStatus dbMode, SystemSession session)
        {
            var result = new StatusData <GeneralKvPair <int, List <long> > >();

            if (dbMode == SystemDbStatus.Inserted)
            {
                var req = request as RuleAddRequest;

                var ruleRequest = new Kauwa.Inbox {
                    UserId = request.UserId, FolderId = req.FolderId, InboxRules = new List <InboxRule> {
                        new InboxRule {
                            TypeUserSelection = (int)req.Rule.UserSelection, RuleTypeUser = (int)req.Rule.RuleTypeUser, ContactList = req.Rule.ContactList, GroupList = req.Rule.GroupList, RuleTypeSubject = (int)req.Rule.RuleTypeSubject, Subject = req.Rule.Subject, ApplyOnOldMessage = req.Rule.ApplyOnOldMessage
                        }
                    }
                };

                var response = await Task.Factory.StartNew(() => Client.InboxRuleService.createInboxRules(ruleRequest, session.GetSession())).ConfigureAwait(false);

                result.Status = (SystemDbStatus)response.DbStatusCode;

                result.Data = new GeneralKvPair <int, List <long> >
                {
                    Id    = response.FolderId,
                    Value = response.InboxRules != null?response.InboxRules.Select(x => x.RuleId).ToList() : null
                };

                result.SubStatus = response.DbSubStatusCode;
                result.Message   = response.DbStatusMsg;
                return(result);
            }
            else
            {
                var req = request as RuleUpdateRequest;

                var ruleRequest = new Kauwa.Inbox {
                    UserId = request.UserId, FolderId = req.FolderId, InboxRules = new List <InboxRule> {
                        new InboxRule {
                            RuleId = req.MessageRuleId, TypeUserSelection = (int)req.Rule.UserSelection, RuleTypeUser = (int)req.Rule.RuleTypeUser, ContactList = req.Rule.ContactList, GroupList = req.Rule.GroupList, RuleTypeSubject = (int)req.Rule.RuleTypeSubject, Subject = req.Rule.Subject, ApplyOnOldMessage = req.Rule.ApplyOnOldMessage
                        }
                    }
                };

                result = (await Task.Factory.StartNew(() => Client.InboxRuleService.updateInboxRules(ruleRequest, session.GetSession())).ConfigureAwait(false)).GetStatusData <GeneralKvPair <int, List <long> > >();
                return(result);
            }
        }