public void CreateNewMessageSync(CorrespondenceNoteBindingModel message, int senderRole)
        {
            var resource = db.ResourcesReferences.SingleOrDefault(r => r.TokenValue == message.resourceToken);

            EDISAngular.Infrastructure.DbFirst.Note note = new EDISAngular.Infrastructure.DbFirst.Note()
            {
                AccountId       = "",
                AdviserId       = message.adviserNumber,
                AssetTypeId     = message.assetTypeId,
                Body            = message.body,
                ClientId        = message.clientId,
                DateCompleted   = message.dateCompleted,
                DateCreated     = DateTime.Now,
                DateDue         = message.dateDue,
                DateModified    = DateTime.Now,
                FollowupActions = message.followupActions,
                //FollowupDate = message.followupDate,
                IsAccepted = message.isAccepted,
                IsDeclined = message.isDeclined,
                NoteType   = message.noteTypeId,
                NoteId     = Guid.NewGuid().ToString(),
                Subject    = message.subject,
                SenderRole = senderRole
            };
            db.Notes.Add(note);
            if (!string.IsNullOrEmpty(resource.ResourceUrl))
            {
                EDISAngular.Infrastructure.DbFirst.Attachment attachment = new EDISAngular.Infrastructure.DbFirst.Attachment()
                {
                    AttachmentId   = Guid.NewGuid().ToString(),
                    DateCreated    = DateTime.Now,
                    DateModified   = DateTime.Now,
                    NoteId         = note.NoteId,
                    Path           = resource.ResourceUrl,
                    Title          = note.Subject,
                    AttachmentType = resource.FileExtension
                };
                db.Attachments.Add(attachment);
            }

            db.SaveChanges();
        }
示例#2
0
        public IHttpActionResult createNewNote(CorrespondenceNoteBindingModel message)
        {
            if (message != null && ModelState.IsValid)
            {
                if (User.IsInRole(AuthorizationRoles.Role_Adviser))
                {
                    var adviser = edisRepo.GetAdviserSync(message.adviserNumber, DateTime.Now);
                    if (adviser == null || adviser.AdviserNumber != User.Identity.GetUserId())
                    {
                        ModelState.AddModelError("", "Invalid adviser id supplied, or current adviser is trying to add note for another adviser, which is illegal.");
                        return(BadRequest(ModelState));
                    }
                    #region make sure client cannot create notes
                    if (User.IsInRole(AuthorizationRoles.Role_Client) && message.noteTypeId == BusinessLayerParameters.noteType_note)
                    {
                        ModelState.AddModelError("", "Client cannot add self-note.");
                        return(BadRequest(ModelState));
                    }
                    var senderRole = User.IsInRole(AuthorizationRoles.Role_Adviser) ?
                                     BusinessLayerParameters.correspondenceSenderRole_adviser
                                            : BusinessLayerParameters.correspondenceSenderRole_client;

                    #endregion

                    Message messageData = new Message(edisRepo)
                    {
                        adviserNumber   = adviser.Id,
                        assetTypeId     = Int32.Parse(message.assetTypeId),
                        body            = message.body,
                        accountId       = message.adviserNumber,
                        clientId        = message.clientId,
                        dateCompleted   = message.dateCompleted,
                        dateDue         = message.dateDue,
                        followupActions = message.followupActions,
                        followupDate    = message.followupDate,
                        isAccepted      = message.isAccepted,
                        isDeclined      = message.isDeclined,
                        noteSerial      = message.noteSerial,
                        noteTypeId      = message.noteTypeId,
                        productTypeId   = Int32.Parse(message.productTypeId),
                        reminder        = message.reminder,
                        reminderDate    = DateTime.Now,                 //need to be updated
                        resourceToken   = message.resourceToken,
                        status          = message.status,
                        subject         = message.subject,
                        timespent       = message.timespent
                    };

                    edisRepo.CreateNewMessageSync(messageData, senderRole);
                    return(Ok());
                }
                else
                {
                    var adviser = edisRepo.GetAdviserSync(message.adviserNumber, DateTime.Now);
                    #region make sure client cannot create notes
                    if (User.IsInRole(AuthorizationRoles.Role_Client) && message.noteTypeId == BusinessLayerParameters.noteType_note)
                    {
                        ModelState.AddModelError("", "Client cannot add self-note.");
                        return(BadRequest(ModelState));
                    }
                    var senderRole = User.IsInRole(AuthorizationRoles.Role_Adviser) ?
                                     BusinessLayerParameters.correspondenceSenderRole_adviser
                                            : BusinessLayerParameters.correspondenceSenderRole_client;

                    #endregion

                    Message messageData = new Message(edisRepo)
                    {
                        adviserNumber   = adviser.Id,
                        assetTypeId     = Int32.Parse(message.assetTypeId),
                        body            = message.body,
                        accountId       = message.adviserNumber,
                        clientId        = message.clientId,
                        dateCompleted   = message.dateCompleted,
                        dateDue         = message.dateDue,
                        followupActions = message.followupActions,
                        followupDate    = message.followupDate,
                        isAccepted      = message.isAccepted,
                        isDeclined      = message.isDeclined,
                        noteSerial      = message.noteSerial,
                        noteTypeId      = message.noteTypeId,
                        productTypeId   = Int32.Parse(message.productTypeId),
                        reminder        = message.reminder,
                        reminderDate    = DateTime.Now,                 //need to be updated
                        resourceToken   = message.resourceToken,
                        status          = message.status,
                        subject         = message.subject,
                        timespent       = message.timespent
                    };
                    edisRepo.CreateNewMessageSync(messageData, senderRole);
                    return(Ok());
                }
            }
            else
            {
                if (message == null)
                {
                    ModelState.AddModelError("", "Model is not provided");
                }
                return(BadRequest(ModelState));
            }
        }