示例#1
0
        public DealMilestoneWrapper CreateDealMilestone(
            String title,
            String description,
            String color,
            int successProbability,
            DealMilestoneStatus stageType)
        {
            if (String.IsNullOrEmpty(title))
            {
                throw new ArgumentException();
            }

            if (successProbability < 0)
            {
                successProbability = 0;
            }

            var dealMilestone = new DealMilestone
            {
                Title       = title,
                Color       = color,
                Description = description,
                Probability = successProbability,
                Status      = stageType
            };

            dealMilestone.ID = DaoFactory.GetDealMilestoneDao().Create(dealMilestone);

            return(ToDealMilestoneWrapper(dealMilestone));
        }
示例#2
0
        public virtual int Create(DealMilestone item)
        {
            if (String.IsNullOrEmpty(item.Title) || String.IsNullOrEmpty(item.Color))
            {
                throw new ArgumentException();
            }

            int id;

            using (var tx = Db.BeginTransaction())
            {
                if (item.SortOrder == 0)
                {
                    item.SortOrder = Db.ExecuteScalar <int>(Query("crm_deal_milestone")
                                                            .SelectMax("sort_order")) + 1;
                }

                id = Db.ExecuteScalar <int>(
                    Insert("crm_deal_milestone")
                    .InColumnValue("id", 0)
                    .InColumnValue("title", item.Title)
                    .InColumnValue("description", item.Description)
                    .InColumnValue("color", item.Color)
                    .InColumnValue("probability", item.Probability)
                    .InColumnValue("status", (int)item.Status)
                    .InColumnValue("sort_order", item.SortOrder)
                    .Identity(1, 0, true));
                tx.Commit();
            }

            return(id);
        }
示例#3
0
        public int Create(DealMilestone item)
        {
            if (String.IsNullOrEmpty(item.Title) || String.IsNullOrEmpty(item.Color))
            {
                throw new ArgumentException();
            }

            if (item.SortOrder == 0)
            {
                item.SortOrder = Query(CrmDbContext.DealMilestones).Select(x => x.SortOrder).Max() + 1;
            }

            var dbEntity = new DbDealMilestone
            {
                Title       = item.Title,
                Description = item.Description,
                Color       = item.Color,
                Probability = item.Probability,
                Status      = item.Status,
                SortOrder   = item.SortOrder,
                TenantId    = TenantID
            };

            CrmDbContext.DealMilestones.Add(dbEntity);
            CrmDbContext.SaveChanges();

            return(dbEntity.Id);
        }
示例#4
0
 public DealMilestoneBaseDto(DealMilestone dealMilestone)
 {
     SuccessProbability = dealMilestone.Probability;
     StageType          = dealMilestone.Status;
     Color       = dealMilestone.Color;
     Description = dealMilestone.Description;
     Title       = dealMilestone.Title;
 }
示例#5
0
        public override int Create(DealMilestone item)
        {
            item.ID = base.Create(item);

            _dealMilestoneCache.Add(item.ID.ToString(), item);

            return(item.ID);
        }
示例#6
0
        private DealMilestoneWrapper ToDealMilestoneWrapper(DealMilestone dealMilestone)
        {
            var result = new DealMilestoneWrapper(dealMilestone)
            {
                RelativeItemsCount = DaoFactory.GetDealMilestoneDao().GetRelativeItemsCount(dealMilestone.ID)
            };

            return(result);
        }
示例#7
0
 public DealMilestoneWrapper(DealMilestone dealMilestone)
     : base(dealMilestone.ID)
 {
     SuccessProbability = dealMilestone.Probability;
     StageType          = dealMilestone.Status;
     Color       = dealMilestone.Color;
     Description = dealMilestone.Description;
     Title       = dealMilestone.Title;
 }
示例#8
0
        public virtual void Edit(DealMilestone item)
        {
            if (HaveContactLink(item.ID))
            {
                throw new ArgumentException();
            }

            DbManager.ExecuteNonQuery(Update("crm_deal_milestone")
                                      .Set("title", item.Title)
                                      .Set("description", item.Description)
                                      .Set("color", item.Color)
                                      .Set("probability", item.Probability)
                                      .Set("status", (int)item.Status)
                                      .Where(Exp.Eq("id", item.ID)));
        }
示例#9
0
        public virtual void Edit(DealMilestone item)
        {
            if (HaveContactLink(item.ID))
            {
                throw new ArgumentException(String.Format("{0}. {1}.", CRMErrorsResource.BasicCannotBeEdited, CRMErrorsResource.DealMilestoneHasRelatedDeals));
            }

            Db.ExecuteNonQuery(Update("crm_deal_milestone")
                               .Set("title", item.Title)
                               .Set("description", item.Description)
                               .Set("color", item.Color)
                               .Set("probability", item.Probability)
                               .Set("status", (int)item.Status)
                               .Where(Exp.Eq("id", item.ID)));
        }
示例#10
0
        public DealMilestoneWrapper UpdateDealMilestone(
            int id,
            string title,
            string description,
            string color,
            int successProbability,
            DealMilestoneStatus stageType)
        {
            if (!(CRMSecurity.IsAdmin))
            {
                throw CRMSecurity.CreateSecurityException();
            }

            if (id <= 0 || string.IsNullOrEmpty(title))
            {
                throw new ArgumentException();
            }

            if (successProbability < 0)
            {
                successProbability = 0;
            }

            var curDealMilestoneExist = DaoFactory.GetDealMilestoneDao().IsExist(id);

            if (!curDealMilestoneExist)
            {
                throw new ItemNotFoundException();
            }

            var dealMilestone = new DealMilestone
            {
                Title       = title,
                Color       = color,
                Description = description,
                Probability = successProbability,
                Status      = stageType,
                ID          = id
            };

            DaoFactory.GetDealMilestoneDao().Edit(dealMilestone);
            MessageService.Send(Request, MessageAction.OpportunityStageUpdated, MessageTarget.Create(dealMilestone.ID), dealMilestone.Title);

            return(ToDealMilestoneWrapper(dealMilestone));
        }
示例#11
0
        public DealMilestoneDto UpdateDealMilestone([FromRoute] int id, [FromBody] CreateOrUpdateDealMilestoneRequestDto inDto)
        {
            var title = inDto.Title;
            var successProbability = inDto.SuccessProbability;
            var description        = inDto.Description;
            var color     = inDto.Color;
            var stageType = inDto.StageType;

            if (!(_crmSecurity.IsAdmin))
            {
                throw _crmSecurity.CreateSecurityException();
            }

            if (id <= 0 || string.IsNullOrEmpty(title))
            {
                throw new ArgumentException();
            }

            if (successProbability < 0)
            {
                successProbability = 0;
            }

            var curDealMilestoneExist = _daoFactory.GetDealMilestoneDao().IsExist(id);

            if (!curDealMilestoneExist)
            {
                throw new ItemNotFoundException();
            }

            var dealMilestone = new DealMilestone
            {
                Title       = title,
                Color       = color,
                Description = description,
                Probability = successProbability,
                Status      = stageType,
                ID          = id
            };

            _daoFactory.GetDealMilestoneDao().Edit(dealMilestone);
            _messageService.Send(MessageAction.OpportunityStageUpdated, _messageTarget.Create(dealMilestone.ID), dealMilestone.Title);

            return(ToDealMilestoneDto(dealMilestone));
        }
示例#12
0
        public virtual void Edit(DealMilestone item)
        {
            if (HaveContactLink(item.ID))
            {
                throw new ArgumentException("Can't be edited. There are some opportunities at this stage.");
            }

            using (var db = GetDb())
            {
                db.ExecuteNonQuery(Update("crm_deal_milestone")
                                   .Set("title", item.Title)
                                   .Set("description", item.Description)
                                   .Set("color", item.Color)
                                   .Set("probability", item.Probability)
                                   .Set("status", (int)item.Status)
                                   .Where(Exp.Eq("id", item.ID)));
            }
        }
        public virtual void Edit(DealMilestone item)
        {
            if (HaveContactLink(item.ID))
            {
                throw new ArgumentException();
            }

            using (var db = GetDb())
            {
                db.ExecuteNonQuery(Update("crm_deal_milestone")
                                   .Set("title", item.Title)
                                   .Set("description", item.Description)
                                   .Set("color", item.Color)
                                   .Set("probability", item.Probability)
                                   .Set("status", (int)item.Status)
                                   .Where(Exp.Eq("id", item.ID)));
            }

            AdminLog.PostAction("CRM: saved opportunity stage {0:Json}", item);
        }
示例#14
0
        public void Edit(DealMilestone item)
        {
            if (HaveContactLink(item.ID))
            {
                throw new ArgumentException(String.Format("{0}. {1}.", CRMErrorsResource.BasicCannotBeEdited, CRMErrorsResource.DealMilestoneHasRelatedDeals));
            }

            var dbEntity = CrmDbContext.DealMilestones.Find(item.ID);

            if (dbEntity.TenantId != TenantID)
            {
                throw new ArgumentException();
            }

            dbEntity.Title       = item.Title;
            dbEntity.Description = item.Description;
            dbEntity.Color       = item.Color;
            dbEntity.Probability = item.Probability;
            dbEntity.Status      = item.Status;

            CrmDbContext.SaveChanges();
        }
示例#15
0
        public DealMilestoneWrapper UpdateDealMilestone(
            int id,
            String title,
            String description,
            String color,
            int successProbability,
            DealMilestoneStatus stageType)
        {
            if (id <= 0)
            {
                throw new ArgumentException();
            }

            if (successProbability < 0)
            {
                successProbability = 0;
            }

            var curDealMilestone = DaoFactory.GetDealMilestoneDao().GetByID(id);

            if (curDealMilestone == null)
            {
                throw new ItemNotFoundException();
            }

            var dealMilestone = new DealMilestone
            {
                Title       = title,
                Color       = color,
                Description = description,
                Probability = successProbability,
                Status      = stageType,
                ID          = id
            };

            DaoFactory.GetDealMilestoneDao().Edit(dealMilestone);

            return(ToDealMilestoneWrapper(dealMilestone));
        }
示例#16
0
        public DealMilestoneWrapper CreateDealMilestone(
            string title,
            string description,
            string color,
            int successProbability,
            DealMilestoneStatus stageType)
        {
            if (!(CRMSecurity.IsAdmin))
            {
                throw CRMSecurity.CreateSecurityException();
            }

            if (string.IsNullOrEmpty(title))
            {
                throw new ArgumentException();
            }

            if (successProbability < 0)
            {
                successProbability = 0;
            }

            var dealMilestone = new DealMilestone
            {
                Title       = title,
                Color       = color,
                Description = description,
                Probability = successProbability,
                Status      = stageType
            };

            dealMilestone.ID = DaoFactory.GetDealMilestoneDao().Create(dealMilestone);
            MessageService.Send(Request, MessageAction.OpportunityStageCreated, MessageTarget.Create(dealMilestone.ID), dealMilestone.Title);

            return(ToDealMilestoneWrapper(dealMilestone));
        }
示例#17
0
        public override void Edit(DealMilestone item)
        {
            ResetCache(item.ID);

            base.Edit(item);
        }
示例#18
0
 public DealMilestoneWrapper(DealMilestone dealMilestone)
     : base(dealMilestone)
 {
 }